【问题标题】:Inject place holder values at Spring boot application.yml file using intellij at run time在运行时使用 intellij 在 Spring boot application.yml 文件中注入占位符值
【发布时间】:2020-06-26 22:36:49
【问题描述】:

我正在使用 Intellj 运行我的 Spring Boot 应用程序,该应用程序具有带有占位符的 application.yml 文件。占位符的值应在运行时根据环境配置注入。

server:
  port: ${SERVER_PORT}

我正在尝试通过在应用程序运行的环境变量部分中传递占位符值来从 Intellij 运行 Spring Boot 应用程序

运行此应用程序时出现以下错误:

自动装配依赖注入失败;嵌套异常是 java.lang.IllegalArgumentException:无法解析值“${SERVER_PORT}”中的占位符“SERVER_PORT” 原因:java.lang.IllegalArgumentException:无法解析值“${SERVER_PORT}”中的占位符“SERVER_PORT”

【问题讨论】:

    标签: java spring-boot intellij-idea placeholder application.properties


    【解决方案1】:

    这可能是因为您的变量赋值在某种程度上是递归的。 SERVER_PORTserver.port

    具有相同的属性
    server:
      port: 
    

    请参阅here 了解配置属性的来源列表及其优先顺序。

    尝试从您的 yaml 文件中删除该部分。如果你声明了一个环境变量 server.port 或 SERVER_PORT 那么 SpringBoot 会选择它并使用它。

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 2018-10-11
      • 2017-06-10
      • 2016-12-25
      • 2019-02-22
      • 2020-03-24
      • 2017-10-08
      • 2014-09-15
      • 2014-12-22
      相关资源
      最近更新 更多