网站首页 > 开源技术 正文
序
本文主要研究一下Spring Boot 2.7, 3.x这几个版本的区别
Spring Boot 2
Spring Boot 2.0在2018年2月28日发布,Spring Boot 2.7是2.x的最后一个发布版本,该版本的开源将于2023年11月停止支持,商业支持可延长到2025年2月
从2.6迁移到2.7
- flyway从8.0更新到了8.5
- H2更新到了2.1.120
- MSSQL driver从v9更新到了v10
- OkHttp3将不再支持,改为支持OkHttp4
- embedded mongo3.4不再支持
- Hazelcast 3.0不再被支持
- camelCase风格的metric tag将被重命名到lower-case并且以.来分割
- 升级Spring Security到5.7版本,废弃了WebSecurityConfigurerAdapter
- requestMappingHandlerMapping这个bean不再被标记为@Primary,因此注入的时候可以使用List
- MySQL JDBC driver的8.0.31的坐标是com.mysql:mysql-connector-j以及mysql:mysql-connector-java,但是从8.0.32开始只发布到了com.mysql:mysql-connector-j这个坐标,而Spring Boot2.7.8版本更新该依赖到8.0.32版本
- auto-configuration和management context的发现机制发生了变化,它们不在spring.factories中注册了,改为在META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports以及META-INF/spring/org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration.imports中声明,而且之前的逗号分隔改为换行分隔
- 新引入了@AutoConfiguration注解,用于顶级的auto-configuration,如果是内嵌的或者是被@AutoConfiguration注解的class引用的则继续使用@Configuration注解
- maven和gradle插件现在都支持了Podman
- auto-configuration新增了对Cache2k的支持
Spring Boot 3
- Spring Boot 3版本于2022年11月24日发布,它是Spring Boot的下一个大版本,基于Spring Framework 6.0,而且要求Java最低版本为Java17。
- Spring Framework 6.0于2022年11月16日发布,是Spring Framework的下一个大版本,该版本要求Java最低版本为Java17,而且迁移到了Jakarta EE 9+版本,使用了jakarta.`替换掉了`javax.,支持了Tomcat 10.1,Hibernate ORM 6.1。另外开始支持AOT编译以及后续发布的协程。
- Jakarta EE 10使用了Servlet 6.0及JPA 3.1规范
- 不再支持Image Banner
- 日志的日期格式从以前的yyyy-MM-dd HH:mm:ss.SSS变更为yyyy-MM-dd’T’HH:mm:ss.SSSXXX,可以使用logging.pattern.dateformat属性进行更改
- 不再支持auto-configuration注册到spring.factories
- 尾斜杠默认不被支持,如果没有显式指定将返回404,可以通过configurer.setUseTrailingSlashMatch(true)来开启
- server.max-http-header-size被废弃,改为使用server.max-http-request-header-size
- actuator endpoints开启加密机制,默认连key也会被加密,可以通过management.endpoint.env.show-values及management.endpoint.configprops.show-values来进行配置
legacy application.propertis
Spring Boot 2.4版本变更了application.properties以及application.yaml的加载方式,可以通过设置spring.config.use-legacy-process为true来恢复以前的行为,不过在3.0版本legacy的处理方式不再被支持
如果仅仅是简单的application.properties以及application.yaml,则该变化没有影响,影响到的是带profile的写法
具体见Spring Boot Config Data Migration Guide
PathPatternParser
Spring MVC提供了AntPathMatcher及PathPatternParser两种解析pattern的方式,在2.6版本默认使用PathPatternParser,通过spring.mvc.pathmatch.matching-strategy可以去改变,后续推荐使用PathPatternParser,因为它的性能更好。
spring-boot-properties-migrator
Spring Boot 3.0版本重命名或者移除了一些配置属性,可以通过spring-boot-properties-migrator来分析和兼容
Spring Cloud版本
Hoxton版本之后采用日期的命名方式
Spring Cloud 2020.0(Ilford版本)
- 从2020.0.0到2020.0.6一共发布了7个版本,其中2020.0.2要求Spring Boot 2.4.3版本
- 这个版本主要是从spring-cloud-netflix移除了一些组件,比如ribbon,hystrix,turbine
- 兼容Spring Boot 2.4.x及2.5.x版本
Spring Cloud 2021.0(Jubilee版本)
- 从2021.0.0到2021.0.7一共发布了8个版本
- 从2021.0.3版本开始主要是兼容Spring Boot 2.7.0及2.6.x版本
Spring Cloud 2022.0(Kilburn版本)
- 要求Spring Boot版本为3.x
Spring Cloud Alibaba版本
2.2.x
对应的是 Spring Cloud Hoxton 与 Spring Boot 2.2.x,最低支持 JDK 1.8
2020.0
对应的是 Spring Cloud 2020 与 Spring Boot 2.4.x,最低支持 JDK 1.8
2021.x
对应的是 Spring Cloud 2021 与 Spring Boot 2.6.x,最低支持 JDK 1.8
2022.x
对应的是 Spring Cloud 2022 与 Spring Boot 3.0.x,最低支持 JDK 17
小结
Spring Framework的主要大版本是6.x,要求JDK17,以之对应的Spring Boot的大版本是3.x,Spring Cloud的大版本是2022.x
doc
- Spring Framework maintenance roadmap in 2020 (including 4.3 EOL)
- Spring Framework 6.0 goes GA
- Spring-Boot-Config-Data-Migration-Guide
- Spring Boot 2.7.0 available now
- Preparing for Spring Boot 3.0
- Spring Tips: the road to Spring Boot 3: Spring Framework 6
- Migrate Application From Spring Boot 2 to Spring Boot 3
- Spring Boot 2.7 Release Notes
- Spring Boot 3.0 Release Notes
- Upgrading to Spring Framework 6.x
- Spring Cloud 2020.0 Release Notes
- Spring Cloud 2021.0 Release Notes
- Spring Cloud 2022.0 Release Notes
- Spring Cloud 2021.0.3 is available. Compatible with Spring Boot 2.7.0
- spring-cloud-alibaba
猜你喜欢
- 2025-01-23 Python和 MySQL 数据库在实际工作中的小白入门应用
- 2025-01-23 mysql连接泄漏问题排查(mysql连接状态查询)
- 2025-01-23 Python 数据库操作:连接 MySQL 和 PostgreSQL 的方法详解
- 2025-01-23 最简洁详细的SSM框架整合(最简洁详细的ssm框架整合模型)
- 2025-01-23 一款好用的数据库文档生成工具-Screw
- 2025-01-23 如何在Jmeter中使用JDBC Connection Configuration连接数据库?
- 2025-01-23 一个时间戳精度问题,引发了一个MySQL血案
- 2025-01-23 SpringBoot 实现静态、动态定时任务,本地动态定时任务调度
- 2025-01-23 Jmeter压力测试Mysql数据库(jmeter对数据库进行压测)
- 2025-01-23 Mybatis-Flex初体验(mybatisif)
你 发表评论:
欢迎- 05-14WP8.1 GDR1的NTP时间同步没有解决问题
- 05-14抑郁症与焦虑症(四):补充色氨酸,5HTP的作用
- 05-14ntp服务器多久同步一次呢
- 05-14简单三步,轻松解决NVR时间不同步问题
- 05-14Linux的300+个真实运维场景——19 NTP 配置与管理
- 05-14海康威视录像机时间不准怎么办录像机无法查看回放录像,NTP校时
- 05-14安全加倍,解密极氪001电池安全技术
- 05-14海康威视录像机NTP服务器
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)