将 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的主要内容,如果未能解决你的问题,请参考以下文章

将 Spring Boot 升级到 2.4.1

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

将 Web 应用升级到 Spring Boot 2.4 后出现 IllegalStateException

Spring Boot 升级到 2.6.0 与 Spring Cloud 发布火车不兼容