
Spring Boot
文章平均质量分 77
宝华的小岛
生命不息,奔跑不止。
展开
-
Springboot Security 前后端分离模式自由接口最小工作模型
但凡讲解Springboot Security的教程,都是根据其本身的定义,前后端整合在一起,登录采用form或者basic。我们需要纯粹使用自己的自由接口来实现注册登录,以及其他业务接口访问的身份验证和授权。这里的设计是用户身份验证与授权的模块跟业务模块的身份权限验证是分开的。过滤器设置的白名单跟此处配置的完全授权的白名单没有必然的关系。给定的权限是ROLE_USER,前面的ROLE_前缀是必须要加的,这是jsr250的权限校验规范要求的。两个接口文件,一个设计为UAA模块,一个设计为业务模块。原创 2022-11-24 14:05:49 · 671 阅读 · 0 评论 -
Springboot Websocket一般封装方法
此方法不是唯一,只是自己对于Springboot中关于Websocket处理思路比较清晰的一种,在此记录下来。总共不过就四个文件而已。原创 2022-11-23 15:10:14 · 1819 阅读 · 0 评论 -
Springboot AOP 使用小结
Springboot AOP 使用小结引言搭建工程POM依赖添加配置编写两个用于测试的接口文件编写几个自定义注解编写两个切面配置1. 用于注解匹配的Aspect关于注解匹配的语法2. 用于包路径匹配的Aspect关于包路径匹配的语法简记测试结果引言为了简化应用层开发人员的工作复杂性,我一般会把一些通用的,复杂的,跟具体业务没有特别关系的逻辑封装在框架层。AOP用的就会比较多。有一段时间,总是会出现自己设计的AOP不能准确匹配的问题。特意做了一点研究,为了增强记忆,方便日后应用,做个小结。搭建工程搭建原创 2021-08-29 18:46:31 · 247 阅读 · 0 评论 -
Sentinel接口限流框架在Springboot中的简单应用
本来目的只是限流,在程序里面可以定义规则。但是鉴于接口限流规则应该随着访问热度而改变,使用硬编码方式不可取,这样就需要借助于Sentinel控制台程序在网页端dong'tai'jin'xi原创 2021-05-31 15:34:53 · 593 阅读 · 0 评论 -
Springboot缓存的使用
我们将在Springboot框架中分别测试EhCache和Redis两种缓存技术。一、Springboot开启默认缓存。1. 创建Springboot工程,添加一些必要的依赖。<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version>原创 2021-05-05 03:36:27 · 1170 阅读 · 0 评论 -
在Springboot中使用@ControllerAdvice对接口返回数据进行统一包装
使用Springboot设计接口,返回数据大致有三种情况:一是直接返回数据,基本数据和String数据类型会直接返回,其他数据会构建为json返回,系统有内置的转换器在工作;二是放在ResponseEntity中,这个效果和上面是一样的;三是自己定义一个统一格式的数据体,作为统一规范的数据交换格式,也便于前端设计统一的解析规则。就像这样package com.chris.demo.models;import lombok.AllArgsConstructor;import lombo原创 2021-03-30 12:30:16 · 1145 阅读 · 3 评论 -
Springboot项目通过logstash将日志分类写入Elasticsearch
需求:我们需要把线上日志收集起来进行分析。在开发阶段,更多的时候程序是运行在本地,所以使用FileBeats就有点繁琐。我们采用直接将日志通过tcp输出到logstash的方案。同时,我们的日志并没有统一的格式,按照日志分析的需求格式都不一样。比如我们需要监控http请求的日志,监控websocket对话的日志,监控搜索gu关键词的日志等等。这就需要我们需要根据不同的需求制定各自的格式,然后分开输出到ES数据库。一、安装ELK这里对此不作过多讲解。es我使用的是docker版本,logstash原创 2020-08-12 09:39:46 · 3206 阅读 · 0 评论 -
解决JHipster Register5.x不能正确解析uaa的api docs的问题
最近在家,无法出门,研究分布式系统的架构。主要使用JHipster构建,而其中最关键的就是注册中心。github上面已经更新到6.1.1的版本,二我们上次使用的版本是3.2.4,我决定研究5.x的版本,于是拉取来5.0.0的源码进行修改、构建、部署、测试。但是在测试过程中遇到一个问题,就是3.x和4.x版本的注册中心都能正确解析uaa的接口文档,但是5.x和6.x都不行,一直有以下提示401...原创 2020-02-19 12:34:53 · 656 阅读 · 0 评论 -
Springboot整合Memcached
一、首先我们使用Centos架设memcached服务器,我们使用Docker来架设Memcached服务1. 拉取镜像docker pull memcached:1.5.162. 启动容器docker run --name memcached -p 11211:11211 -d memcached:1.5.16 memcached -m 128好了,使用docker架设m...原创 2019-11-28 18:22:40 · 346 阅读 · 0 评论 -
Springboot + Security + JWT + OAuth2 整合简单案例
参照上次 Spring Security + JWT 的简单应用一、建立一个Springboot项目,最终的项目结构如下二、添加pom依赖 <!-- OAuth2 --> <dependency> <groupId>org.springframework.security.oauth<...原创 2019-10-12 13:52:30 · 2481 阅读 · 1 评论 -
Spring Security + JWT 的简单应用
参照上次的例子:Spring Security简单应用https://blog.youkuaiyun.com/xxkalychen/article/details/102498016这个例子的应用场景是在调用接口的时候发现不能通过验证就自动跳转到登录页面登录,但是登陆成功之后,身份验证信息只是倚靠session来验证。在分布式服务中,我们每一次调用接口都会做验证,这就需要我们在登录时要获取一个jwt,每次...原创 2019-10-11 16:20:46 · 519 阅读 · 0 评论 -
Spring Security简单应用
安全框架security完整名称为Spring Security,依赖Spring框架工作。其功能主要是身份认证和授权。关键词:Authentiction:认证Authorization:授权web服务的身份认证,一般在接口正式调用之前,所以应该在拦截器和过滤器中去实现。security已经内置了很多现成的过滤器,框架应用的主要操作是通过配置去调用这些过滤器。一、首先我们建立一...原创 2019-10-11 12:55:41 · 423 阅读 · 0 评论 -
Springboot+dubbo+zookeeper学习笔记(二)
时隔数月,第一版基本上线测试,开发组面临第二版重构。因为第一版遭遇需求零碎和管理混乱,毫无节制地修改,导致原来架构好的项目被无情撕碎,体系完全被打乱,程序处处耦合,经常是改完这一处,就会在另一处翻出新问题。加之原来的项目因为无法整体预先规划,四个app和一个管理网站的接口杂揉在一起,臃肿而且杂乱。我就想着赶紧上线,到安排第二版重构的时候实现分布式架构。架构的初始想法,是全部利用SpringClou...原创 2018-03-12 15:23:32 · 459 阅读 · 0 评论 -
SpringBoot集成外部jar包无法使用maven打jar包的问题
问题起源于我们公司对支付宝支付的应用。在后台服务中,我们使用SpringBoot构建工程,然后集成蚂蚁金服提供的七八个jar包,使用Add Library加到项目中。一切封装完成之后,直接运行是没有问题的。但是我们的项目需要部署到公网的服务器上面,我们习惯使用maven打包,然后直接运行。但是这样打包最终失败,错误提示是一大堆的什么包找不到、符号找不到等一系列问题。最初以为是蚂蚁金服给的jar原创 2017-11-28 11:22:07 · 2289 阅读 · 0 评论 -
Dubbo学习笔记:注册到zookeeper并实现远程调用
我们选择zookeeper作为注册中心。一、首先要下载zookeeper,把程序解压,进入conf,把zoo_sample.cfg修改为zoo.cfg。进入bin文件夹,在这里打开命令行,输入zkserver.cmd,这样就启动了zookeeper。可以看出,zookeeper注册中心监听的是2181端口。二、创建服务提供者工程。1. 创建一个springboot项目,在p原创 2017-11-27 15:59:13 · 8726 阅读 · 1 评论 -
Redis学习笔记(6)消息的订阅与发布
数据库还能通信,真是学习了!!!先写一个方法,订阅消息: @Test public void redis_test_message_subscribe() { JedisPubSub jedisPubSub = new JedisPubSub() { @Override public void onMessage原创 2017-12-01 17:28:45 · 1275 阅读 · 0 评论 -
Redis学习笔记(5)对set集合的读写
集合分为无需集合和有序集合。写一个方法,测试无需集合:@Test public void redis_test_set() { //存入数据 jedis.sadd("nameset", "kaly chen"); jedis.sadd("nameset", "devin chen"); //读取数据原创 2017-12-01 17:16:32 · 907 阅读 · 0 评论 -
Java自定义框架初步(一)
最近想自己学习写框架,看过一些资料,决定从JavaWeb开始。近来用到SpringBoot写过一些模拟接口,我对这种框架很感兴趣,几行代码就可以写出很实用的数据接口。框架设计除了需要巧妙的思路之外,还需要准备三种技术:1.反射;2.自定义注解;3.资源文件的读写。一般框架常用xml文件做配置,也可以使用properties属性文件。我是用Idea做工具。一、首先创建一个Ja原创 2017-09-02 19:38:59 · 4320 阅读 · 0 评论 -
SpringBoot拦截器的使用
一、首先建立拦截器,继承HandlerInterceptorpublic class CustomInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse htt原创 2017-09-16 15:13:08 · 719 阅读 · 0 评论 -
SpringBoot过滤器的使用
只需要建立一个过滤器就搞定了。@WebFilter(urlPatterns = "/*")public class CustomFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Overr原创 2017-09-16 15:45:14 · 13263 阅读 · 1 评论 -
Springboot监听器的使用
创建监听器@WebListenerpublic class ContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { MsgUtils.printl原创 2017-09-16 16:34:44 · 8751 阅读 · 0 评论 -
Springboot架构设计(一)
本来一直做Android设计,因为工作需要目前负责Java后端。主要使用的框架是SpringBoot。自己习惯在做项目的时候进行架构设计,实现低耦合,高灵活,快速开发。研究的时间不长,目前做了一个简单的Java SpringBoot项目架构,简单梳理一下。一、建立项目的时候把Mysql选上,创建项目之后需要添加数据库连接信息。数据库是提前创建好的。连接信息可以写在application原创 2017-09-16 17:01:19 · 15490 阅读 · 0 评论 -
Springboot架构设计(二)封装
这时候数据库还没有准备好,接口需求也没有定下来,我们可以做一些早期的封装。早期封装的好,尽量实现低耦合,就和实现快速开发,而且还能应对各种不确定的变化。一般的接口需求,以获取数据为主。获取数据有些是单一数据类型,有的却是多种数据多种结构组合在一起。比如Android的页面如果比较复杂,就需要组装一套复杂的数据提供。这就导致java后端纵向分割无法确定。我的观点是,controller是数据原创 2017-09-16 17:38:14 · 6501 阅读 · 0 评论 -
java.lang.NoClassDefFoundError问题的解决
我把servlet的上传方式放到Springboot中,添加了common-fileupload包,运行的时候一大堆错误,提示java.lang.NoClassDefFoundError。开始以为Springboot的处理有冲突,后来读到这篇文章http://blog.youkuaiyun.com/jamesjxin/article/details/46606307,才恍然大悟。原来我忘记将刚添加的包加入Ar原创 2017-09-10 11:30:20 · 7687 阅读 · 0 评论 -
SpringBoot多表查询的实现
在SpringBoot中,建立一个与单表结构相同的实体类,用@Entity@Table(name="user")建立ORM映射,用@Column(name="name")建立字段映射。就可以用CrudRepository很方便地查询数据库表。但是我们经常需要查询多表关联的数据。如,有这样两个表:user和level。user中存放用户基本信息,level存放用户等级信息,user表中包含有l原创 2017-09-10 22:32:25 · 18372 阅读 · 5 评论 -
SpringBoot打包jar包并后台运行
最近又进步了。我一直习惯直接在Intellij Idea中直接运行写好的程序,不过也是因为仅仅是写个模拟接口而已。后来到新公司要负责java后台,开始习惯把项目部署到外部Tomcat去测试,或者打成war包让运维去linux上面部署。不过,想来这也是因为只是在做一个目前看起来并不是很重要的项目而已。如果同时做的项目多了,好像自己的做法就不好了。老大最近点醒了我,原来SpringBoot是可以打原创 2017-09-28 00:24:45 · 26308 阅读 · 0 评论 -
SpringBoot中利用AOP实现拦截器效果
既然使用Spring,AOP就是不了或缺的。尝试好多遍,踩了很多坑,最后总算把效果弄出来了。说起来很简单,只需要建一个类就好了。@Aspect@Configurationpublic class InfoInterceptor { private static final String execution_str_01 = "execution(* com.chris.cont原创 2017-09-11 23:13:58 · 3436 阅读 · 1 评论 -
SpringBoot中WebSocket不能实现注入的问题
项目需要长连接业务,我使用SpringBoot中的 ,一切都调得好好的,到对接数据库的时候,一个大坑突然出现:ServerEndpoint中竟然不能实现注入,甚至使用的对象中有注入也不行。找了两天资料,写了好几个demo,有人说在@ServerEndpoint加上, configurator = SpringConfigurator.class,测试不通过;有人说使用 ContextLoader.原创 2017-11-20 11:51:19 · 9003 阅读 · 6 评论 -
SpringBoot中jpa批量插入的问题
说起来令人啼笑皆非。本来也是我对SpringBoot不太熟,现在处于学习的阶段。公司最近做一个项目,我用SpringBoot架构好了,中间遇到两个问题:一是软件内启动老是提示注解工厂的错误,网上查了一下,原来是因为 @Table注解的问题,把关于表名映射改到@Entity里面就好了,因为orm的类都是持久化插件生成好的,我以为应该不会有这方面的问题,加之表太多,而且数据库又总是不确定。我不愿老原创 2017-11-29 21:48:06 · 11395 阅读 · 0 评论 -
Redis学习笔记(2)在Springboot项目中的配置
使用Intellij Idea创建一个SpringBoot项目,勾选redis。创建一个测试文件。在测试文件内创建jedis和gson(需要导入gson依赖)。 private Jedis jedis;//jedis private Gson gson;写一个init方法,初始化iedis和gson。@Before public void init() {原创 2017-12-01 17:04:53 · 293 阅读 · 0 评论 -
Redis学习笔记(3)hash的读写
个人觉得读写哈市将来应该是用的最多的了。如果要把存在内存中的很多数据寄存在redis中,使用hash最方便,把对象转换成hashMap就好了。接上一篇,写一个测试方法:@Test public void redis_test_hash() { //构建hash Map map = new HashMap<>(); map.pu原创 2017-12-01 17:09:07 · 565 阅读 · 0 评论 -
Redis学习笔记(4)对list列表的读写
这个也将会是用的比较多的。写一个测试方法:@Test public void redis_test_list() { //存入数据// jedis.lpop("namelist");// jedis.lrem("namelist",16,"kaly chen"); jedis.lpush("namelist"原创 2017-12-01 17:12:50 · 1040 阅读 · 0 评论 -
SpringBoot实现文件上传
用SpringBoot实现服务器,然后用java和html5实现客户端进行上传测试。一、服务器端接口程序。为省事就在controller中写了,正式的程序我喜欢放在service这一层进行处理调用。@RestController@RequestMapping("/file")public class FileController { /** * 单文件上传原创 2017-09-04 22:14:46 · 23971 阅读 · 9 评论