聊聊Spring Boot几个版本的区别

您所在的位置:网站首页 springframework版本 聊聊Spring Boot几个版本的区别

聊聊Spring Boot几个版本的区别

#聊聊Spring Boot几个版本的区别| 来源: 网络整理| 查看: 265

本文主要研究一下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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3