如何在 application.yml - Spring Boot 中设置环境变量

How to set an environment variable in application.yml - Spring Boot

我正在开发 spring 启动应用程序,并且正在编写一些使用 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

但是 none 这些工作。 我想我在 application.yml 中没有写正确,但我想不出正确的方法。

我终于找到了一种方法,将其作为相关插件中的系统 属性 变量直接添加到 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>

另一个'wiring'解决方案:

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