在EnvironmentPostProcessor中读取CommandLineArgs

时间:2018-11-19 16:57:29

标签: spring spring-boot

使用EnvironmentPostProcessor时,可以读取提供的CommandLineArgs吗?由于此类在Spring Boot 2.1中是程序包专用的,因此我无法将PropertySource的源强制转换为CommandLineArgs

换句话说:如何从SimpleCommandLinePropertySource获取键和值?

1 个答案:

答案 0 :(得分:0)

感谢@AndyWilkinson我弄清楚了。我可以这样读取环境变量条目:

private void processEnvVariable(final PropertySource<?> envSource) {
    final CommandLinePropertySource<?> envVariables = (CommandLinePropertySource<?>) envSource;
    if (envVariables.containsProperty("myKey")) {
        doSthUseful(envVariables.getProperty("myKey"));
    } else {
        throw new InvalidParameterException();
    }
}