聊聊Spring Boot几个版本的区别

这篇具有很好参考价值的文章主要介绍了聊聊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文章来源地址https://www.toymoban.com/news/detail-637123.html

doc

  • Spring Framework maintenance roadmap in 2020 (including 4.3 EOL)
  • Spring Framework 6.0 goes GA
  • 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

到了这里,关于聊聊Spring Boot几个版本的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 聊聊Spring Boot的自动配置

    介绍 Spring Boot的自动配置是其一大核心特性,可以让我们迅速构建出一个Spring应用程序。 Spring Boot 是 Spring Framework 中最火的项目之一,它通过集成各种第三方库和框架来简化开发过程,并提供一些优秀的默认设置,使得开发人员可以快速构建高效的企业级应用。本文将主要讲

    2024年02月10日
    浏览(29)
  • Spring Boot 2与Spring Boot 3的区别

    # Spring Boot 2与Spring Boot 3的区别 Spring Boot是一个流行的Java框架,简化了基于Spring的应用程序的开发。它提供了一套默认配置和自动配置选项,使开发人员更容易开始使用Spring项目。在本博客文章中,我们将探讨Spring Boot 2和Spring Boot 3之间的区别。 ## 1. 介绍 Spring Boot 2于2018年发

    2024年02月08日
    浏览(37)
  • Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

    目录 一、@SpringBootApplication 二、@SpringBootConfiguration 三、@EnableAutoConfiguration 四、@ComponentScan   @SpringBootApplication是Spring Boot框架的核心注解之一,它用于标识一个主配置类,通常是项目的入口类。该注解可以将Spring Boot应用程序自动配置和启动的相关注解整合在一起,简化了Sp

    2024年02月13日
    浏览(31)
  • spring boot applicationContext.getBeansOfType 无法获取所有bean对象

     代码如上所示,我想在某个service中注入所有AvatarScanCallback类型bean对象,但是发现无法注入全部bean, 最后检查发现是因为有些AvatarScanCallback的子对象中存在循环依赖问题导致此时只能获取一部分。  

    2024年02月17日
    浏览(33)
  • Spring Boot 和 Spring Cloud Framework 的区别

    大家好,如果您从事 Java 开发并创建了微服务,那么您可能知道  Spring Boot 和 Spring Cloud是两个流行的基于 Java 的框架,广泛用于构建企业级应用程序,尤其是服务器端后端 Java 应用程序。这两个框架均由 Spring 团队开发,并提供独特的功能,使它们在市场上脱颖而出。虽然

    2024年02月07日
    浏览(33)
  • Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本

    在 Java 生态系统中,Spring Boot、Spring Cloud 和 Spring Alibaba 是非常流行的框架,它们提供了丰富的功能和优雅的解决方案。然而,随着不断的发展和更新,这些框架的版本关系可能会变得复杂,特别是在整合和兼容性方面。本文将以表格形式列出这三个框架的版本对照关系,并提

    2024年02月14日
    浏览(29)
  • shiro-spring-boot-starter针对不同Spring Boot版本

    对于Spring Boot 2.4.10,无法找到shiro-spring-boot-starter的2.7.2版本,这是一个错误的版本号。 shiro-spring-boot-starter针对不同Spring Boot版本,推荐使用的版本如下: Spring Boot 1.x - 使用版本1.4.1 Spring Boot 2.0.x - 使用版本1.5.3 Spring Boot 2.1.x - 使用版本1.6.0 Spring Boot 2.2.x - 使用版本1.7.0 Spring Boot 2.3

    2024年02月13日
    浏览(32)
  • JDK 17和JDK 8及Spring Boot 2和Spring Boot 3的区别:

    JDK 17和JDK 8的区别: 新的语言特性 JDK 17引入了新的语言特性,如Sealed类、Pattern Matching for instanceof、Switch Expressions、Text Blocks等。这些特性让代码更简洁、可读性更高、易于维护。 性能提升 JDK 17对JIT编译器进行了改进,使得代码的性能得到了提升。此外,JDK 17还引入了一个新

    2024年02月11日
    浏览(31)
  • 如何替换spring boot中spring框架的版本

    我开源的一个项目中,有朋友提到存在Spring Framework 身份认证绕过漏洞(CVE-2023-20860)。 解决方案是升级spring 框架版本: Spring Framework 5.3.X 系列用户建议升级Spring Framework到5.3.26及以上安全版本修复该漏洞 Spring Framework 6.0.X 系列用户建议升级Spring Framework到6.0.7及以上安全版本修复

    2024年02月11日
    浏览(38)
  • spring boot与spring cloud版本兼容问题解决(附版本兼容表)

    天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 以下为解决报错问题,如果看完还不能解决,可以参考下面这篇文章搭建spring cloud sp

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包