聊聊Spring Boot几个版本的区别

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容