
SpringBoot
SpringBoot相关
LitongZero
哪怕命运即为必然,也要拼命相抗
展开
-
SpringBoot获取命令行参数
SpringBoot获取命令行参数在SpringBoot中获取命令行参数,如 -D参数。1.启动命令java -Dspring.profiles.active=dev -Duser.name=ltz2.获取方式@Value("${user.name}")private String userName;3.注意命令行参数优先级大于Application.yml优先级。...原创 2021-10-22 18:26:22 · 2080 阅读 · 0 评论 -
使用ThreadLocal在线程间传递参数
使用ThreadLocal在线程间传递参数使用场景用户参数透传,如租户ID,tid,userID,Token等。这些参数与具体业务无关,但是又是必须的(如:租户ID,在数据落库时需要传入,但是在其他业务代码中基本用不到)如果作为方法的参数一层一层向下传递,必然造成代码的冗余和扩展性查等影响。整片文章就以租户ID为例子说明吧。1.使用ThreadLocal结合AOP大致思路:在请求接口时,租户ID往往可以从Token或用户信息中取出,这时,在请求拦截器中,将用户TenantID取出,放入线程中。原创 2021-09-29 10:15:17 · 2054 阅读 · 1 评论 -
Spring Security 自定义接口登出
Spring Security 自定义接口登出使用Security提供的工具,在接口内登出用户。工具类代码 // 注入 tokenStore @Autowired private final TokenStore tokenStore; //在具体的业务代码中使用 /** * 删除 请求令牌 和 刷新令牌 * @param token 请求令牌 * @return */ public Boolean removeToken(String token) { OAu原创 2021-03-18 12:48:35 · 1124 阅读 · 1 评论 -
SpringBoot undertow accesslog格式
关于SpringBoot undertow中accesslog的格式1.背景1.收集accesslog日志。2.项目使用SpringBoot的undertow。3.日志格式有特殊要求。2.问题原因关于寻找日志格式的路上,花费了不少时间,其中,在各种博客上、SpringBoot官网上和Apache Access Logging标准。都没有找到undertow配置的相关答案。大部分博客都是把官网的说明直接翻译了一下。而容器undertow和tomcat的配置是有一定的差别的。照搬Tomcat的日原创 2020-09-10 09:43:33 · 1516 阅读 · 0 评论 -
SpringBoot MDC
SpringBoot MDC在程序中,日志一直是一个至关重要的部分,排查问题、统计数据…解决问题SpringBoot添加全局自定义日志链路信息。1.过滤器,拦截指定请求,可取出参数、请求头等信息,可根据业务自定义添加进日志进程(MDC)。2.时间拦截器,根据注解进行拦截,向进程日志(MDC)中,注入方法执行时间。3.具体业务,可自行向进程日志(MDC)中注入所需信息。1.MDCFilter请求过滤器,用于向MDC中添加请求头等信息。/** * 拦截请求信息,添加到日志 * *原创 2020-07-27 13:42:32 · 1315 阅读 · 0 评论 -
Feign透传请求头等
Feign透传请求头等在用Feign进行接口转发时,可能需要直接透传请求头。添加Feign配置@Configurationpublic class FeignServerAuthConfig { @Bean public RequestInterceptor requestInterceptor(){ return new FeignMyRequestInterceptor(); } @Autowired private ObjectFac原创 2020-07-20 17:36:34 · 1433 阅读 · 4 评论 -
前后端WebSocket使用注意事项
前后端WebSocket使用注意事项1.域名配置微信小程序硬性要求2.Https证书微信小程序硬性要求3.Nginx配置Nginx配置,跟普通接口不太一样。WebSocket需要一些特殊配置。如果是集群,记得配置会话保持或haspip4.后端后端我使用的是Netty-Socket-IO框架配合SpringBoot。后端代码可以看我的这批文章5.小程序端官网文档测试代码wx.connectSocket({// 小程序端,必须使用wss协议,也就是说服务器必须要配置https原创 2020-06-07 15:43:07 · 1406 阅读 · 0 评论 -
SpringBoot限流拦截器(结合业务)
SpringBoot限流拦截器(结合业务)背景从网络安全和系统稳定性来看,限流是非常有必要的。一些网关,可以帮我们完成限流熔断。但是,在某些场景,当与实际业务相结合时,网关的限流也就不那么方便了。1.目的1.解决业务和限流合并的情况。如,同一个接口,每个用户,在一段时间(10秒)内只能请求几次(4次)。2.并且可以快速的调整这个限制的频率(动态修改)SpringBootRe...原创 2020-04-05 20:22:23 · 816 阅读 · 0 评论 -
SpringBoot 1.5 JPA MongoDB 设置多数据源
SpringBoot 1.5 JPA MongoDB 设置多数据源原创 2020-01-20 13:56:04 · 993 阅读 · 1 评论 -
Swagger-UI 自定义显示返回状态码
Swagger-UI 自定义显示返回状态码注: Swagger-bootstrap-ui 方法同样Swagger,作为一个在线文档,是非常好用的,正确的使用这个,可以使我们少些很多接口文档。1.问题背景:做为接口文档,那必然是要有,全局错误状态码说明的功能。而Swagger在参数,相应,都用相应的注解,同样,在状态码也是有相应的注解的。默认的状态码,只有200,如下:2.单接口...原创 2020-01-03 16:45:43 · 11697 阅读 · 7 评论 -
自己实现注解式权限校验(SpringBoot)
权限校验(SpringBoot注解式)权限校验是很多情况都会用到的,结合Java注解和拦截器,直接在Controller层的方法上添加一个注解,可以无侵入式的进行权限校验。一.Java注解1.RequestMapping我们打开一个最常用的Spring注解可以看到,RequestMapping注解上,还有几个注解,分别代表①Target:注解目标(如:可以在方法、类、参数中使用)...原创 2019-12-20 10:47:29 · 4904 阅读 · 2 评论 -
Netty-SocketIO 集群解决方案
Netty-SocketIO 集群解决方案Netty-SocketIO作为一个Socket框架,使用非常方便,并且使用Netty开发性能也有保证。但是,我在使用Netty-SocketIO框架时,却发现,国内的资料比较少,虽然有些Demo级别的技术分享,但是关于集群解决方案,并没有什么较好的解决方法。所以,博主结合GitHub上的Issues,实现了一种集群的解决方案。一. 解决方案原......原创 2019-12-12 13:41:00 · 12333 阅读 · 11 评论 -
RestTemplate 传送多文件、文件数组
RestTemplate 传送多文件背景:使用RestTemplate传送文件,并且有其他字段信息,还有文件数组。解决方法// RestTemplate 初始化 @Autowired private RestTemplate baseRestTemplate; public void test(){ MultiValueMap<String, Object> ...原创 2019-11-06 09:42:06 · 3054 阅读 · 0 评论 -
SpringBoot 部署在Tomcat上,上传文件问题
SpringBoot 部署在Tomcat上,上传文件问题解决方法@Beanpublic CommonsMultipartResolver commonsMultipartResolver(){ CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); commonsMul...原创 2019-10-27 14:35:11 · 895 阅读 · 0 评论 -
SpringBoot 接受文件和对象
SpringBoot 接受文件和对象使用场景:某个接口,需要同时接受文件和实体,也就是参数一、这个时候,前端就不能json格式传送数据了,要用到multipart/form-data;这种格式传送数据。二、那么,这个时候,后端应该怎样接受这个参数和文件呢?1.接受HttpServletRequest,自己处理request(不推荐)@PostMapping(value = "/upl...原创 2019-10-16 12:29:50 · 12729 阅读 · 16 评论 -
SpringBoot2.0 跨域处理
SpringBoot2.0 跨域处理1.原因在前后端项目分离时,最先遇到的问题也许就是跨域。其他原因,不再赘述。2.环境①.spring-boot:2.1.0.RELEASE3.解决跨域的两种方式(本质一样)一、Application.java直接配置Bean@SpringBootApplicationpublic class Application { public st...原创 2019-03-06 21:54:51 · 2317 阅读 · 1 评论 -
SpringBoot2.0 添加Token、Redis
SpringBoot2.0 添加Token、Redis背景1.由于前后端分离式开发,以及安全性等等问题,使用Token来进行回话的认证,已经成为了一个非常常用的操作其他的优点啥的,我就不再赘述,本文主要考虑实现。1.开发环境①. SpringBoot 2.1.0②. jdk 1.8③. IDEA④. …2.引入jjwt依赖pom.xml&amp;amp;lt;dependency&amp;amp;gt;...原创 2019-03-05 13:03:13 · 2827 阅读 · 7 评论 -
SpringBoot 使用Swagger2
SpringBoot 使用Swagger2Swagger2是一个非常好用的接口测试插件。类似于POSTMAN,但是Swagger2是集成在项目中的,在开发接口时,很方便对接口进行测试。1、引入Maven依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;io.springfox&amp;lt;/groupId&amp;gt;原创 2018-11-16 10:01:03 · 445 阅读 · 0 评论 -
SpringBoot 添加单元测试
SpringBoot 添加单元测试1、添加Maven依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-test&原创 2018-11-16 09:25:10 · 3963 阅读 · 0 评论 -
RestTemplate 使用案例
RestTemplate 使用案例当我们使用SpringBoot原创 2019-08-21 11:13:07 · 822 阅读 · 0 评论 -
SpringBoot2.0 整合 Redis
SpringBoot2.0 整合 Redis文章目录SpringBoot2.0 整合 Redis1.背景本文就不说Redis的好处了。2.环境①`SpringBoot`:2.1.0.RELEASE3.引入依赖版本就不用加了,直接继承使用SpringBoot父工程的版本号4.新建`配置类``RedisConfig.java`5.新建RedisService`RedisService.java`6....原创 2019-03-06 22:18:14 · 1048 阅读 · 3 评论