ITPub博客

首页 > 数据库 > 数据库开发技术 > Springboot3.x升级指南,内附代码

Springboot3.x升级指南,内附代码

原创 数据库开发技术 作者:极客e家 时间:2023-12-22 10:37:00 0 删除 编辑
引言


Springboot3.0其实在2022年6月就已经推出了,并且和之前的Springboot2.x的版本有很大的差别,所以如果项目上没有特殊要求,个人不太建议从Springboot2.x的版本升级到Springboot3.x的版本。如果非要升级的话,我们首先要弄清楚一个事,就是Springboot3.x到底有什么新的重要新特性。



升级指南





1、最低支持Java 17。如果要升级到Springboot3.x的话,你的Java SDK版本最低是17才行,所以首先SDK环境上就需要升级,伴随着你Gradle或Maven的版本都需要升级。


2、底层依赖的J2EE迁移到了Jakarta EE 9。这个会造成你升级之后,里面的import包依赖路径会进行大规模的修改,基本上80%以上的Java文件都会修改,这个风险其实就很大。更不要说每次升级,肯定有一些方法在用法上的升级和改变。


3、具体语法的升级。其实第2点提到了一些,升级之后,有些具体包中的语法和方法进都进行了变更:

  • 首先影响比较大的就是整个用法和写法都变了,比如swagger的用法,变化就特别大。

  • 其次还有一些代码,只是用法上有所改变,修改范围小一些,参照代码的提示或者官方文档去对应修改即可,这类影响范围稍微小一些。

  • 再者,还有一些可改可不改的,比如有些写法过时了,IDE上会拿删除线标记在代码上,会强烈推荐你改,但是不改也不影响功能。还有些比如类似于spring注入的写法变更了之类的。

  • 最后呢,有一类最难找也最难判断,因为有些升级了,他有可能把背后的默认值或运行机制给改了,可能需要你在配置文件中去指定才可以,这一类你很难发现,升级之后不报错,也不影响运行,感觉啥事没有。要是测试做的不到位,大多数时候出了问题你才能知道,很难提早发现。要想尽可能避免只能说升级之前,将跨了n个版本的升级日志都结合代码好好调查了一遍,细致的做影响范围分析。这类问题我曾经被坑过2次。。。


4、新特性的加入。这一类根据业务需求去考量,因为升级到springboot3.x后,加入了AOT预编译、Spring Native、虚拟线程等新特性。尤其虚拟线程这,可以结合具体业务需求,看是否某些业务代码需要重写。









示例代码




我在今年5月份(2023年5月)的时候,基于当时最新的springboot3.1.0版本,写了一个springboot的demo工程(项目用IntelliJ IDEA进行的开发,Gradle进行项目编译)。想要学习的小伙伴,请在公众号内回复【springboot3】,即可获得工程下载链接。代码包括如下功能:

  • 启动换Banner

  • 多环境切换配置

  • 国际化

  • 整合Mytatis操作Mysql

  • 整合JPA操作Mysql

  • JdbcTemplate操作Mysql

  • 整合Redis

  • 缓存数据

  • session存储

  • 排行榜

  • 订阅发布

  • 整合MongoDB

  • 整合Kafka

  • 整合Swagger3

  • 全局异常处理

  • 整合Thymeleaf

  • 邮件发送

  • 定时器Scheduler

  • CommandLineRunner初始化资源

  • 获取服务器信息

  • Junit

  • 雪崩模拟(JUC并发)

  • 阿里stresstester压测


(正文完)


更多精彩内容,欢迎扫码加入免费知识星球
极客e家
,

共同打造极客文化。

原文作者:极客e家;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-01-24

  • 博文量
    115
  • 访问量
    94712