将 Spring Boot 2.3.5 升级到 2.4.0
Posted
技术标签:
【中文标题】将 Spring Boot 2.3.5 升级到 2.4.0【英文标题】:Upgrade SpringBoot 2.3.5 To 2.4.0 【发布时间】:2021-03-08 12:24:34 【问题描述】:我想将我的 SpringBoot 版本从 2.3.5 升级到 2.4,但是我遇到了问题..
2.3.5 中的应用程序运行没有任何问题
我用这个更新了我的 POM,POM 上没有错误。 :
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
我有 4 个这样的应用程序属性: 应用程序-local.properties 应用程序-d.yaml 应用程序-...yaml 申请...
我在本地,所以我想运行 application-local.properties。
为此,我在 SpringBootTool 的“VM arguments”中使用:
-Dspring.profiles.active=local
现在有了它和 Spring 2.4.0,它不会应用本地配置文件,而是在没有任何属性的情况下运行应用程序。
对于我的测试:
我抑制了 VM 参数,将 spring.profiles.active=local
放入 application.properties (因为 application.properties 也加载了 application-local.properties)
我在 application-local.properties 中使用和不使用 spring.config.activate.on-profile=local
进行了测试
我读过这两个: https://docs.spring.io/spring-boot/docs/2.4.0-SNAPSHOT/reference/html/spring-boot-features.html#boot-features-external-config-files
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Config-Data-Migration-Guide
感谢您的帮助!
【问题讨论】:
尝试应用程序参数,而不是使用--spring.profiles.active=local
,而不是VM参数。
【参考方案1】:
这个问题是已知的,是由属性中的 cmets 引起的
例子:
# I'm a comment
custom.properties.url=http://stack.com
# I'm another
公开发布 > 2.4.0 或使用 2.4.1-SNAPSHOT 请参阅此和其他相关内容:https://github.com/spring-projects/spring-boot/issues/24263
【讨论】:
不应该是这样,因为他提供的是系统参数,而不是从属性文件中读取。【参考方案2】:升级到 Spring Boot 2.4.0 后问题解决了
mvn spring-boot:run -Dspring-boot.run.profiles=dev
而不是使用 -Dspring.profiles.active
【讨论】:
以上是关于将 Spring Boot 2.3.5 升级到 2.4.0的主要内容,如果未能解决你的问题,请参考以下文章
TypeNotPresentExceptionProxy,将Spring Boot Starter父级从2.1.8升级到2.2.1
将 Spring Boot 从 2.4.X 升级到 2.6.X 后无法运行我的 jar
将 Spring Boot 1.5.10 升级到 2.1.11