Spring Boot
文章平均质量分 70
小饭大人
DISS is cheap, show me your hand.
比吐槽更重要的是搭把手,参与其中,改进它!
展开
-
如何全面升级spring-boot-2.x及Spring-security-oauth2
解决CVE-2022-22978和CVE-2022-22965漏洞,全面升级spring-boot-2.x及Spring-security-oauth2原创 2022-06-17 18:37:00 · 2544 阅读 · 0 评论 -
SpringBoot工程假死,如何揪出幕后真凶的?
SpringBoot工程假死,如何揪出幕后真凶的?工作中经常会遇到程序不响应,但是进程依然存活的现象。原因有很多,比如内存、CPU占满了(500,连接超时)磁盘满了(500,连接超时)今天笔者遇到的不是前两种,原因也很稀奇,tomcat线程池耗尽了,导致500连接超时。我们是一个spring boot工程,对外提供rest接口服务,但是隔三差五的就会出现500连接超时的现象。排除了内存、CPU、磁盘占满的case后,有个同事无意中发现这台机器出现了大量的网络连接CLOSE_WAIT。查询资料原创 2021-04-09 11:51:37 · 5523 阅读 · 0 评论 -
关于Nexus你需要掌握的知识点
前言Jar包管理绕不开Maven, Maven的使用必定设计私服Nexus,那么Maven私服是什么,为什么我们开发Spring boot项目需要它?怎么来搭建自己的私服呢?笔者从一个实际工作遇到的问题着手,与大家分享我了解的Nexus私服小知识。问题描述一个沉寂了4个月CICD流水线走到Maven编译的时候,突然报错了:[ERROR] [ERROR] Some problems were encountered while processing the POMs:[FATAL] Non-reso原创 2020-12-07 14:50:03 · 891 阅读 · 0 评论 -
如何制作一个Fat Jar
笔者日常开发中遇到一个场景,需要将项目依赖的jar打包成一个jar包。下一篇文章我会告诉大家fat jar使用场景。主要有两种方案:借助强大的assembly工具无需任何配置文件,直接修改pom.xml如下:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>原创 2020-11-19 11:38:48 · 480 阅读 · 0 评论 -
别被NoSuchMethodError骗了
别被NoSuchMethodError骗了NoSuchMethodError不一定方法真的不存在两个Jar包含相同的类怎么办?Jar在classpath中的顺序真的很重要吗?Linux和window环境是怎么排序jar的?结论小编工作中尝尝被NoSuchxxx这类报错拦住,这里面最常见的莫过于NoSuchMethodError。程序所说的“No such meth”真的就是在类里面没有这个方法吗?不,100%的情况是jar包冲突了。程序只是告诉你它在当前这个jar包的类A中没有找到需要的方法,如果真的没有原创 2020-08-03 18:32:44 · 745 阅读 · 0 评论 -
彻底搞明白为什么日志框架依赖冲突了
项目启动报错如下:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.qdc is restartingJava HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024M; support was removed in 8.0SLF4J: Cl原创 2020-06-02 10:08:56 · 1567 阅读 · 0 评论 -
一次排查@CacheEvict注解失效的经历
笔者简单看了一下《Spring实战》中的demo,然后就应用到业务代码中了,本以为如此简单的事情,竟然在代码提交后的1个周,被同事发现。selectByTaskId()方法查出来的数据总是过时的。代码如下:@Cacheable("taskParamsCache")List<TaskParams> selectByTaskId(Long taskId);// ...// ...@CacheEvict("taskParamsCache")int deleteByTaskId(Long原创 2020-05-15 11:56:26 · 3120 阅读 · 0 评论 -
Java Web项目内存溢出问题排查
线上的一个spring boot项目每两个周会出现系统卡死,不能正常提供api服务,重启后恢复。经过查看日志发现大量的“java.lang.OutOfMemoryError: GC overhead limit exceeded”日志。这个异常的官方解释:Exception in thread thread_name: java.lang.OutOfMemoryError: GC Overhead limit exceededCause: The detail message “GC overhead原创 2020-05-08 18:32:07 · 1372 阅读 · 0 评论 -
Spring-Boot基于配置按条件装载Bean
背景同一个接口有多种实现,项目启动时按某种规则来选择性的启用其中一种实现,再具体一点,比如Controller初始化的时候,根据配置文件的指定的实现类前缀,来记载具体Service,不同Service使用不同的Dao和数据库。看到这里,我们会想到使用SPI机制,或Spring按条件加载Bean机制来实现,下面主要讨论后者。定义接口定义2个Service层接口:OrderService、O...原创 2019-01-04 20:23:12 · 4452 阅读 · 0 评论 -
前后端分离之Spring-Boot实现CORS跨域访问
关于CORS跨域访问的解释,请参考下面的博客:http://www.ruanyifeng.com/blog/2016/04/cors.html缩简称一张图如下:实现跨域共需要四步:第一步基本不用做什么,浏览器都实现了跨域访问自动在Request Headers添加跨域的信息:Origin: http://localhost:8089Access-Control-Request-He...原创 2018-12-04 18:05:31 · 1001 阅读 · 0 评论 -
最简单的基于Maven实现Sring Boot多环境配置和切换
最简单的基于Maven实现Sring Boot多环境配置和切换在做Spring boot工程时,我们希望将那些需要区分环境的配置项挑出来,当idea中勾选了Profiles时,可以动态切换配置项。有两个实现方案:方案一听说Spring boot天生支持多环境的配置,具体配置方式如下:分别创建开发、测试、线上环境的配置文件,文件名需要满足application-{profile}.pr...原创 2018-11-13 18:43:51 · 523 阅读 · 0 评论 -
Spring Boot事物Transactional不起作用排除
(本文出自oschina博主文章:https://my.oschina.net/happyBKs/blog/1624482)spring对事务的管理,之前的博客文章中也介绍过,不再详细累述。本文想说的是,当@Transactional不起作用如何排查问题。可以按照以下几个步骤逐一确认:首先要看数据库本身对应的库、表所设置的引擎是什么。MyIsam不支持事务,如果需要,则必须改为In...转载 2018-11-13 18:20:48 · 3091 阅读 · 2 评论