- 参考1-微信公众号-这可能是最全的SpringBoot3新版本变化了!、
- 参考2-SpringBoot官网-Spring Boot 3.0 Release Notes、
- 参考3-微信公众号-Swagger升级指南:Swagger2与Swagger3注解差异揭秘、
- 参考4-微信公众号-Dante Cloud 3.2.0.0 发布,首个适配 Spring Boot 3.2版本及经验分享
- 参考5-JeecgBoot 文档中心-升级SpringBoot3
前提说明,建议先完成springboot2.x—>springBoot2.7.x+jdk17的适配,这里升级难度会小很多。参考:文章最前面的文章。
1、jdk17变动(如javax)
详见: jdk8升级JDK17避坑指南(适用于SpringBoot2.3—SpringBoot2.7升级)
- 模块化对反射的影响==>对系统类的反射增加了限制,需要打开限制增加jvm启动参数,自己写的类,可以正常使用反射。
- 删除sun.misc 下的包,如sun.misc.BASE64Encoder==>替换
- 删除JAXB、soup相关==>maven仓库上面有新的maven坐标,
- 删除javax.annotation==>maven仓库上面有新的maven坐标,
2、redis修改spring.redis.host ===> spring.data.redis.host
3、SpringCloudApplication注解被删除
使用@SpringBootApplication替换
4、不兼容升级import java.servlet====>import jakarta.servlet
servlet捐献给社区,为了避免版权问题,修改了包名,导致不兼容.
- javax.servlet===> jakarta.servlet
- javax.validation ===> jakarta.validation
- javax.annotation ===> jakarta.annotation
- javax.mail ===> jakarta.mail
- javax.websocket ==> jakarta.websocket
5、swagger集成 弃用springfox—>springdoc不兼容升级
springfox不维护了,springboot3使用springdoc,并启用openapi3.0,相关注解进行了变化。
参考:spring boot 3 整合 swagger3、
参考:Swagger升级指南:Swagger2与Swagger3注解差异揭秘、
参考:OpenApi3.0注解说明
swaggr2实例
swagger3示例
6、动态数据源baomidou的dynamic-datasource依赖变动
经过测试,该条也可以不升级
参考1:baomidou dynamic-datasource、
参考2:kancloud tracy5546 dynamic-datasource
7、Spring Framework 6.0 中删除了对 Apache HttpClient 支持(RestTemplate受影响)
升级到SpringBoot3发现依赖提示缺少:rg.apache.httpcomponents:httpclient,一些三方库可能依赖httpclient,就需要自己手工引入依赖。三方包如:spring-data-elasticsearch5、nacos-client 1.4.6、weixin-java-pay 4.0.0、htmlunit 3.6
参考: Spring-Boot-3.0-Migration-Guide#apache-httpclient-in-resttemplate、
8、SpringBoot3.0整合RocketMQ时出现未能加载bean文件
springboot2.x使用rocketmq没有问题,springboot3出现,required a bean of type ‘org.apache.rocketmq.spring.core.RocketMQTemplate’ that could not be found.
9、springboot3默认依赖 elasticsearch从7.x升级到8.x
- 配置文件地址修改:==>
- springboot3要求elasticsearch必须升级到8.x,不能使用7.x,否则报错:
- 废弃:high client客户端
- 要求ElasticSearch必须8.x
10、springboot 3.2 openFeign加载失败暂未解决 (3.1没问题)
启动失败 feign导致 not annotated with HTTP method type (ex. GET, POST)
- https://blog.csdn.net/nailsoul/article/details/
- https://www.jianshu.com/p/11b4cbc8951a
- https://juejin.cn/post/
11、hutool5.8–>hutool6.0升级要要点
说明常见类,如果找不到,请看源码注释,注释上面写的有,或者全局搜索即可,无需多说。
- –>
- hutool类变化说明: 【6.0.0】升级到6.0不兼容情况汇总,大家一起来统计维护呀、
- 国密相关SmUtil,使用6.0x问题,参加:hutool 5.x 和 hutool 6.x crypto 国密SMUtil 模块放在一个工程中会产生冲突
12、Centos7使用jdk21报错
java: /lib64/libc.so.6: version `GLIBC_2.14’ not found (required by /usr/local/java/jdk-21.0.2+13/bin/…/lib/libjli.so)
参考1:version `GLIBC_2.14’ not found 问题解决
参考2:解决 /lib64/libc.so.6: version `GLIBC_2.15’ not found 问题
最新已经是了,可以直接安装:,安装前确保安装的有。
- Centos6 推荐2.17
13、@Async注解报错Invalid return type for async method (only Future and void
分析原因,springboot2.7一切正常,升级到springboot3.x@Async标记的方法,只能返还void或者Future(@Async+Future+AsyncResult返回值)
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/2382.html