springboot
jey_4
宅在宅
展开
-
eureka要在nginx里面配置
eureka要在nginx里面配置,否则其它服务注册不了(固定前缀是eureka)server { listen80; server_name _; location /eureka { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X...原创 2021-10-29 10:03:34 · 2065 阅读 · 0 评论 -
springboot解决@value无法注入工具类
方案,能过跳板形式注入1.跳板类@Componentpublic class SpringConfigUtils { public static String active; @Value("${spring.profiles.active}") public void setFile(String active) { SpringConfigUtils.active = active; }}此时active已经注入配置文...原创 2021-03-11 11:46:51 · 542 阅读 · 0 评论 -
大量CLOSE_WAIT连接导致服务假死
参考:https://blog.csdn.net/q512224549/article/details/89483432https://blog.csdn.net/lxlmj/article/details/53005021?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242三次握手:四次挥手:引用重点语句:CLOSE_WAIT从上面的图可以看出来..原创 2021-01-21 15:20:48 · 823 阅读 · 0 评论 -
shiro自定义session过期时间
使用shiro权限框架,并使用redis来管理session时,自定义session有效时间,配置如下:1:sessionManager.setGlobalSessionTimeout(90*60*1000);2: redisSessionDAO.setExpire(90*60);如上两个时间一个是session会话时间,一个是redis存储的session的有效时间。其它处的session配置都不用管,以上面两个配置为最终决定session有效期。...原创 2021-01-16 14:37:32 · 1533 阅读 · 0 评论 -
Springboot拦截器统一失败场景响应码
场景:自定义拦截器进行accessToken鉴权校验。1、新建自定义异常类:TokenException,并继承RuntimeExceptionpublic class TokenException extends RuntimeException{ private static final long serialVersionUID = 1L; public TokenException() { } public TokenException(String message原创 2020-08-10 14:58:27 · 648 阅读 · 0 评论 -
HttpClient+事务发生死锁,导致服务假死
背景:Springboot服务端业务代码中包含HttpClient请求第三方的接口,由于第三方要求,将超时时间设置40S。另外在业务代码中有操作数据库的动作,所以同时创建了事务。问题:当第三方接口出现问题,大量客户端请求服务开始堆积,客户端超时(5S)后,导致服务端TCP被动关闭链接,产生大量的CLOSE_WAIT的链接,同时,由于代码中包含HttpClient长时间的请求等待及操作数据库的事...原创 2020-01-02 16:18:37 · 1673 阅读 · 0 评论 -
引入本地开源的jar包
引入本地修改后的开源jar时,需要把原型在本地仓库中远程下载的jar完全清理干净,再编译打包本地的开始jar包,否则可能报jar冲突原创 2019-11-22 08:43:48 · 296 阅读 · 0 评论 -
HttpSession线程不安全的问题
问题现象:PC管理端的接口请求,进行了Token的拦截验证,Token更新的机制为10分钟更新一次,并保留旧Token3分钟有效,Token保存在session中。这时会引起一个问题,当触发更新的动作时,刚好有多个并发请求上来,带的都是同一个Token,此时后端存的Token是需要更新的,因为更新Token的逻辑加了锁,即只有第一个线程有资格触发创建新的Token,并同步更新session中的To...原创 2019-08-31 16:54:01 · 549 阅读 · 0 评论 -
spring webmvc转webflux的事项
1、web的配置原来mvc是引入WebMvcConfigurer ,需改成WebFluxConfigurer注解EnableWebMvc改成EnableWebFlux2、全局异常的配置webflux有提供异常处理类,但也保留支持注解:ControllerAdvice,RestControllerAdvice等。Componentpublic class ExceptionHan...转载 2019-06-20 15:22:05 · 2709 阅读 · 0 评论 -
springboot validate参数校验
参考文档:https://www.jianshu.com/p/89a675b7c900https://www.cnblogs.com/mr-yang-localhost/p/7812038.html@NotBlank、@NotNull、@NotEmpty三者之间的区别 1.@NotNull:不能为null,但可以为空字符串 2.@NotEmpty:不能为nu...原创 2019-06-05 15:18:05 · 971 阅读 · 0 评论 -
Restful API接口规范
简介REST:英文representational state transfer直译为表现层状态转移,或者表述性状态转移;Rest是web服务的一种架构风格,一种设计风格,是一种思想;同时Rest不是针对某一种编程语言的。以webService为例通俗解释。非Rest设计,以往我们都会这么写:http://localhost:8080/admin/getUser (查询用户)h...原创 2019-04-28 16:18:11 · 20430 阅读 · 4 评论 -
springboot引入另外springboot项目踩坑
springboot A项目下有两个子项目B和C,现B依赖C,并在pom引入C,现使用C中的类时遇坑,这里会存在两个问题问题1、编译不能过解决办法:B和C各自都使用了springboot的打包插件,所以B无法引入C,此时去除C中的springboot打包插件或者改用Maven打包插件,注意<build> <plugins> &...原创 2018-11-22 16:00:01 · 17123 阅读 · 2 评论 -
表单重复提交(前端未做单击防重复点击策略)
表单重复提交导致重复添加,用token解决:提交前的请求会给前端一token,后端将这token存在缓存中,表单提交时要带上这token,后端校验token通过执行业务逻辑,后端 并删除缓存中的token,若有重复提交时token就会校验失败,达到效果。此时有个问题,如果后端用session来存token,然后session是存在redis上的,如果删除此时session中的token,而前端...原创 2018-12-22 16:01:09 · 614 阅读 · 0 评论 -
Spring Boot 使用JPA @Transactional 报错事务不回滚
@Transactional有两个包:1、org.springframework.transaction.annotation.Transactional;2、javax.transaction.Transactional;两个过都试过了,但service层方法上报错后jpa.save方法仍然插入了数据到DB中,没有回滚,看用的mysql(5.7版本)中引擎要是InnoDB才能支持事务...原创 2019-01-14 17:31:48 · 4455 阅读 · 0 评论 -
解决nginx访问不到swagger
项目框架:springboot1.5.15swagger2:2.9.2问题:swagger2默认访问路径为:http://domain.com/swagger-ui.html因在项目中所有接口中都加上前缀:项目名及模块名(/xxxx/xxxx),如http://domain.com/xxxx/xxxx/requestUrl,然后就...解决方法:修改Nginx配置,新增sw...原创 2019-02-16 10:53:07 · 16238 阅读 · 1 评论 -
No Dialect mapping for JDBC type: -9(sqlserver2012)
项目中使用jpa查询单列单行数据,返回值为String,现报org.hibernate.MappingException: No Dialect mapping for JDBC type: -9该字段类型为nvarchar,返回时会出错。解决办法:使用convert,例如字段deptName的类型为nvarchar,出现错误为No Dialect mapping for JDB...原创 2019-03-30 16:06:07 · 1434 阅读 · 0 评论 -
@Transactional事务问题(org.springframework.transaction.annotation.Transactional)
脏读:两个不同类A和B中两个方法C和D的,两个类的事务传播行为类型都是默认设置为propagation = Propagation.REQUIRED(如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择),A.C调用B.D方法,事务是有传递性的,C在调用D的方法后,C还要查询了D中改动的对象E的数据,这时候C拿到的数据是不正确的,因为D更新E的事物还没有提交...原创 2019-04-04 14:56:46 · 9164 阅读 · 0 评论 -
@Transactional事务注意的事项
@Transactional(org.springframework.transaction.annotation.Transactional;)1、事务只对public方法生效2、同一类中,非事务方法A调事务方法B,会使B中的事务失效3、同一类中,事务A调中增强配置的事务B,B中的增强不会生效,B的事务会与A的一致(你知道配置事务的原理是什么?实际上就是一个AOP,AOP绝对不可...原创 2019-04-04 17:57:41 · 436 阅读 · 0 评论 -
springboot1.5.X升级到2.X时redis配置的改动
https://www.jianshu.com/p/f1a7ef7d0596原创 2019-04-26 10:39:57 · 1232 阅读 · 0 评论 -
spring-boot:run启动报错记录
spring-boot:run启动失败[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------------...原创 2018-08-26 21:47:43 · 12226 阅读 · 1 评论