如何在Spring Boot中升级Spring版本

2022-09-02 12:49:49

是否有关于如何将Spring版本升级到Spring 5.0的教程?我在我的pom.xml中找不到春季版本。

我发现这个:https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x#upgrading-to-version-50

但它没有给出有关实际更改版本号的位置的说明。

我使用的是Spring Boot 1.3。如果我升级到Spring Boot 2.0,这会自动将我的Spring版本升级到5吗?

谢谢!


答案 1

Spring Boot 项目(即使用 Spring Boot 依赖项的项目)必须不显式设置各个 Spring 依赖项。这些依赖项由你声明的 Spring Boot 核心项目拉取。这通常是通过您声明为项目的父 pom 来完成的。
这是Spring Boot的一大优势,它使您不必识别和声明可以很好地协同工作的依赖关系。
因此,为了将项目更新到Spring 5(实际发布的版本),您必须将父声明从1.3更新到2.X(或者如果您不使用起始父级,则更新为'依赖项版本)。
您确实可以在Spring Boot 2的发行说明中读到:spring-boot-starter-parentspring-boot-starter-parentspring-boot-dependencies

Spring Boot 2.0 建立在 Spring Framework 5 之上,需要 Spring Framework 5。

请注意,从Spring Boot 1.3(一个公平的旧版本)更新到Spring Boot 2(一个非常新版本)可能会对您的应用程序产生一些回归。
因此,您应该注意仔细测试您的应用程序以识别所有这些应用程序。
Spring-Boot-2.0-Migration-Guide也是简化迁移的良好资源。


要检查Spring Boot拉取的Spring依赖项的版本,您可以依靠目标。
下面是您通过声明为项目的父级而获得的内容的片段:dependency:treeorg.springframework.boot:spring-boot-starter:jar:2.0.2.RELEASE

$ mvn dependency:tree                                                                       
[INFO] Scanning for projects...                                                             
[INFO]                                                                                      
[INFO] ----------------------------------------------------             
[INFO] Building demo 0.0.1-SNAPSHOT                                                         
[INFO] --------------------------------[ jar ]---------------------------------             
[INFO]                                                                                      
[INFO] --- maven-dependency-plugin:3.0.2:tree (default-cli) @ demo ---                      
[INFO] com.example:demo:jar:0.0.1-SNAPSHOT                                                  
[INFO] +- org.springframework.boot:spring-boot-starter:jar:2.0.2.RELEASE:compile            
[INFO] |  +- org.springframework.boot:spring-boot:jar:2.0.2.RELEASE:compile                 
[INFO] |  |  \- org.springframework:spring-context:jar:5.0.6.RELEASE:compile                
[INFO] |  |     +- org.springframework:spring-aop:jar:5.0.6.RELEASE:compile                 
[INFO] |  |     +- org.springframework:spring-beans:jar:5.0.6.RELEASE:compile               
[INFO] |  |     \- org.springframework:spring-expression:jar:5.0.6.RELEASE:compile          
[INFO] |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.2.RELEASE:compile   
[INFO] |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.2.RELEASE:compile`
... 

您可以通过通过以下方式生成示例项目来进行“试运行”测试https://start.spring.io/


答案 2

您可以通过检查其找到弹簧框架版本。导航到其父 pom,直到到达 。使用Intelij,在pom文件中,我可以通过单击文件中的引用轻松导航到父pom。我想(或希望)你可以在其他IDE中做同样的事情。寻找属性,那就是弹簧框架版本。spring-boot-starter-Xpom.xmlspring-boot-dependencies-VERSION.pom<spring.version>

例如,我正在使用 .它的父 pom 是,它包含值为 的属性 。spring-boot-starter-web-1.3.8.RELEASE.jarspring-boot-dependencies-1.3.8.RELEASE<spring.version>4.2.8.RELEASE

您可以通过在包含依赖项的pom中覆盖此属性来更改Spring Framwork版本,但不建议这样做。另请注意,在更高版本上,属性名称已更改为spring-boot-starter-Xspring-framework.version


推荐