如何在Spring Boot中升级Spring版本

use*_*300 9 java spring upgrade maven spring-boot

是否有关于如何将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吗?

谢谢!

dav*_*xxx 13

Spring Boot项目(使用Spring Boot依赖项的项目)必须不显式设置各个Spring依赖项.这些依赖项由您声明的Spring Boot核心工件提取.这通常通过spring-boot-starter-parent您声明为项目的父pom来完成.
这是Spring Boot的一大优势,可以帮助您识别和声明可以完美协作的依赖项.
因此,为了将项目更新为Spring 5(实际发布的版本),您必须将spring-boot-starter-parent父声明从1.3 更新为2.X(spring-boot-dependencies如果不使用启动父项,则必须更新'依赖版本).
您确实可以在Spring Boot 2的发行说明中读到:

Spring Boot 2.0构建于Spring Framework 5之上并需要它.

请注意,从Spring Boot 1.3(旧版本)到Spring Boot 2(最新版本)的更新可能会导致您的应用程序出现一些回归.
因此,您应该仔细测试您的应用程序,以确定所有这些.
弹簧引导-2.0-迁移,指南也是简化迁移一个很好的资源.


要检查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/

  • 确切地。我更新了我的答案,为您提供一些检查使用的 Spring 版本的方法。 (2认同)

Ker*_*ode 10

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

例如,我正在使用spring-boot-starter-web-1.3.8.RELEASE.jar. 它的父 pom包含具有 value 的spring-boot-dependencies-1.3.8.RELEASE属性。<spring.version>4.2.8.RELEASE

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