如何在Spring Boot中升级Spring版本

时间:2018-06-12 18:59:37

标签: java spring maven spring-boot upgrade

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

我发现了这个: 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吗?

谢谢!

2 个答案:

答案 0 :(得分:10)

Spring Boot项目(使用Spring Boot依赖项的项目)必须不显式设置各个Spring依赖项。这些依赖项由您声明的Spring Boot核心工件提取。这通常是通过您声明为项目父pom的spring-boot-starter-parent来完成的 这是Spring Boot的一大优势,可以帮助您识别和声明可以很好地协同工作的依赖项 因此,为了将项目更新到Spring 5(实际发布的版本),您必须将spring-boot-starter-parent父声明从1.3更新为2.X(或spring-boot-dependencies'依赖版本你没有使用入门父母。) 你确实可以在the release note of Spring Boot 2中读到:

  

Spring Boot 2.0构建于Spring Framework 5之上,并且需要它。

请注意,从Spring Boot 1.3(旧版本)到Spring Boot 2(最新版本)的更新可能会导致您的应用程序出现一些回归。
因此,您应该仔细测试您的应用程序,以确定所有这些 Spring-Boot-2.0-Migration-Guide也是缓解迁移的好资源。

要检查Spring Boot提取的Spring依赖项的版本,您可以信赖dependency:tree目标。
通过将org.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/

生成示例项目进行测试

答案 1 :(得分:0)

您可以通过检查spring-boot-starter-X来找到pom.xml的Spring Framwork版本。导航到其父pom,直到到达spring-boot-dependencies-VERSION.pom。使用InteliiJ,在pom文件中,我可以通过单击文件中的引用轻松导航到父pom。我猜(或希望)您可以在其他IDE中执行相同的操作。查找属性<spring.version>,它是Spring Framwork版本。

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

您可以通过在pom中覆盖此属性来更改Spring Framwork版本,该属性包括spring-boot-starter-X依赖项,但它是not recommended。另请注意,在更高版本上,属性名称为changedspring-framework.version