2018年2月28日,SpringBoot进入2.0时代,距今已有4年多了。2022年11月,SpringBoot3.0正式发布。它将基于SpringFramework6.0并需要Java17或更高版本。这也将是JakartaEE9的第一个SpringBoot版本。开发人员还有六个月的时间过渡到SpringBoot3.0。今天胖哥就给大家说说一些以后快速迁移到3.0的方法。Java17Java17将是自Java8以来最重要的LTS版本,是Java社区八年努力的成果。Java17包含许多重要的改进,是目前最强大的LTS版本。目前所有的SpringBoot2.x版本都可以很好的适配Java17,大家可以先开始升级调试JDK,无需等待就可以尝试一些新的特性和API。尽快升级到SpringBoot2.7前几天胖哥说SpringBoot2.7基本就是SpringBoot2.x的最后一个大版本了。SpringBoot2.5已经停止OSS支持,不再维护。SpringBoot2.6也将在SpringBoot3.0发布后停止维护,迭代速度越来越快。尽快升级到2.7,更好的迁移到3.0。这里胖哥建议不要跳过版本升级。比如不要直接从2.4跳到2.7。尝试按照2.4、2.5、2.6、2.7的步骤升级。如果跨度太大,不利于平滑升级。去除过时代码每个SpringBoot版本都会或多或少的有@Deprecated标记的代码,SpringBoot3.0会彻底去除2.x中的过时代码,当然2.x早期的过时代码也可能在最新的2.x中。x被删除。尽量不要使用过时的代码。通常,过时的代码会注解过时的原因或替代的API。配置文件机制的改变在SpringBoot2.4中,改变了配置文件application.properties和application.yaml的加载机制,目的是简化外部配置的加载方式,使其更加合理,带来不兼容。为了顺利升级,Spring提供了一个配置项来兼容旧机制:spring:config:use-legacy-processing:true,这个机制在3.0会被移除,我们必须使用符合新机制的配置方式机制,如果你有这个有几个方法要注意。多文档Yaml如果在yaml配置文件中使用spacer---声明多个文档,需要知道现在声明的配置属性是按照文档声明的顺序注册的;在SpringBoot2.3及更早版本中,激活顺序基于配置文件。例如:---spring:profiles:active:devapplication:name:dev-appserver:port:8081---spring:profiles:active:prodapplication:name:prod-appserver:port:8080这个配置文件在在SpringBoot2.3及更早版本中,会根据spring.profiles.active来确定加载环境。但是从2.4开始,后面的属性会覆盖前面的属性。如果你的配置文件在jar外,外部配置总是覆盖jar内的配置,并且配置文件适合特定的环境,比如application-dev.yaml。2.4以下版本,jar外的application.yaml不会覆盖jar内的application-
