spring - 如何在 BeanFactoryPostProcessor 中获取命令行参数?

标签 spring spring-boot kotlin

我正在将 Spring boot 用于我在 Kotlin 上编写的应用程序。我可以使用 Environment.getProperty("nonOptionArgs", Array<String>::class.java) 获取命令行参数

然而,里面BeanFactoryPostProcessor我无法 Autowiring 环境 - 因为这个后处理器在生命周期中运行得太早。如何访问 BeanFactoryPostProcessor 中的命令行参数?

最佳答案

好吧,您可以实现您的 BeanFactoryPostProcessorEnvironmentAware获取 Environment :

@Component
public class FooBeanFactoryPostProcessor implements BeanFactoryPostProcessor , EnvironmentAware{

    private Environment env;

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

            env.getProperty("nonOptionArgs");
            //I should be able to access env at here .Hehe

    }

    @Override
    public void setEnvironment(Environment environment) {
            this.env = environment;
    }

}

关于spring - 如何在 BeanFactoryPostProcessor 中获取命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54201439/

相关文章:

java - 获取 spring :bind status. errorMessage 填充时出现问题

java - spring boot 1.3 maven模块无法 Autowiring

Spring Data Mongodb - 如何进行批量更新插入

java - Spring Boot - @Value 返回 null

spring - 如何使用 Kotlin 在 Spring Test 类中注入(inject)服务组件?

android - 如何根据 Kotlin 中的进度条进度更新 textview 值

android - FusedLocationProviderClient 与 Android Kotlin 服务

具有多个用户表的 Spring Oauth

java - spring 3 在 @value 中使用 bean 和占位符拼写 if-then-else

java - 如何在Activiti7中使用 "IdentityService and FormService"