【问题标题】:How to set an environment variable in application.yml - Spring Boot如何在 application.yml 中设置环境变量 - Spring Boot
【发布时间】:2020-06-09 05:56:42
【问题描述】:

我正在开发一个 Spring Boot 应用程序,并且正在编写一些使用 MockServer 的测试。 为了不在日志中显示对模拟服务器的所有请求,我必须将环境变量 mockserver.logLevel 设置为 OFF。 当我通过命令行执行此操作时,它可以完美运行:

mvn clean install -Dmockserver.logLevel="OFF"

但是当我尝试在我的 application.yml 中执行此操作时,它不起作用。 我尝试了以下方法:

mockserver:
    log-level: OFF

mockserver:
    loglevel: OFF

mockserver:
    logLevel: OFF

logging:
  level:
    org.mockserver: OFF

但这些都不起作用。 我想我在 application.yml 中写得不正确,但我想不出正确的方法。

【问题讨论】:

    标签: spring-boot logging properties yaml mockserver


    【解决方案1】:

    我终于找到了一种方法,将其作为相关插件中的系统属性变量直接添加到 pom.xml 中:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${version.maven-failsafe-plugin}</version>
        <configuration>
            <systemPropertyVariables>
                <mockserver.logLevel>OFF</mockserver.logLevel>
            </systemPropertyVariables>
        </configuration>
    </plugin>
    

    【讨论】:

      【解决方案2】:

      另一种“接线”解决方案:

      @Configuration
      public class MockServerConfiguration {
          ... 
          public MockServerConfiguration(@Value("${mockserver.logLevel}") String mockserverLogLevel) {
              if (Objects.isNull(System.getProperty("mockserver.logLevel"))) {
                  System.setProperty("mockserver.logLevel", mockserverLogLevel);
              }
          }
          ...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-09
        • 2020-03-15
        • 1970-01-01
        • 2019-08-03
        • 2016-11-15
        • 1970-01-01
        • 2021-06-25
        • 2016-02-12
        相关资源
        最近更新 更多