如何在 Spring 启动应用程序中获取有效属性,而不管它在哪里定义?
How to get the effective Properties in Spring Boot application regardless of where it is defined?
假设我通过将 -Dmy.property=314
传递给 JVM 从命令行启动 Spring 引导应用程序时定义了一个 属性,并且我还在 属性 中定义了 属性 =13=] :
my.property=318
据我所知,命令行优先级更高,当我在 bean 中注入 my.property
的值时,我得到 314
。是否有任何 API 我可以获得属性而不管它在哪里定义并尊重这个优先级?我的意思是我得到 属性 将由 Spring.
注入 bean
如果您不想通过 @Value
等其他机制或 @ConfigurationProperties
等绑定注入 属性,您可以通过 Environment
[=14] 获取它=]
@Autowired
private Environment env;
...
env.getProperty("xxx.yyy");
假设我通过将 -Dmy.property=314
传递给 JVM 从命令行启动 Spring 引导应用程序时定义了一个 属性,并且我还在 属性 中定义了 属性 =13=] :
my.property=318
据我所知,命令行优先级更高,当我在 bean 中注入 my.property
的值时,我得到 314
。是否有任何 API 我可以获得属性而不管它在哪里定义并尊重这个优先级?我的意思是我得到 属性 将由 Spring.
如果您不想通过 @Value
等其他机制或 @ConfigurationProperties
等绑定注入 属性,您可以通过 Environment
[=14] 获取它=]
@Autowired
private Environment env;
...
env.getProperty("xxx.yyy");