【发布时间】:2019-06-09 14:49:07
【问题描述】:
我正在为我在 Kotlin 上编写的应用程序使用 Spring Boot。我可以使用 Environment.getProperty("nonOptionArgs", Array<String>::class.java)
但是,在BeanFactoryPostProcessor 内部,我无法自动装配环境——因为这个后处理器在生命周期中运行得太早了。如何访问BeanFactoryPostProcessor 中的命令行参数?
【问题讨论】:
-
@Lino 你是对的 - 这是 Kotlin :)
-
尝试自动装配
org.springframework.boot.ApplicationArguments,然后调用它的方法getSourceArgs。看看这是否有效。 -
@VHS 不起作用 - 当
BeanFactoryPostProcessor运行时 - 上下文中根本没有 bean - 只有 bean 定义。 -
如果根据您的命令行参数有谨慎数量的案例,您可以尝试使用ConditionalOnProperty。
-
@OleksandrPapchenko 在有条件地加载 bean 方面(如 Spring Boot 中的自动配置),我想说使用
@ConditionalXXX注释要干净得多
标签: spring spring-boot kotlin