如何在Spring启动应用程序中获得有效的属性,而不管它是在哪里定义的?

如何在Spring启动应用程序中获得有效的属性,而不管它是在哪里定义的?,spring,spring-boot,spring-properties,Spring,Spring Boot,Spring Properties,假设我在从命令行启动Spring Boot应用程序时,通过将-Dmy.property=314传递给JVM来定义一个属性,并且在应用程序中定义这个属性。属性: my.property=318 据我所知,命令行具有更高的优先级,当我在bean中注入my.property的值时,我得到314。是否有任何API可以获取属性,而不管它是在哪里定义的,并且尊重此优先级?我的意思是,我得到的属性将在Spring之前注入bean。如果您不想通过其他机制(如@Value或绑定(如@ConfigurationP

假设我在从命令行启动Spring Boot应用程序时,通过将
-Dmy.property=314
传递给JVM来定义一个属性,并且在
应用程序中定义这个属性。属性

my.property=318

据我所知,命令行具有更高的优先级,当我在bean中注入
my.property
的值时,我得到
314
。是否有任何API可以获取属性,而不管它是在哪里定义的,并且尊重此优先级?我的意思是,我得到的属性将在Spring之前注入bean。

如果您不想通过其他机制(如
@Value
或绑定(如
@ConfigurationProperties
)注入该属性,您可以通过
环境

    @Autowired
    private Environment env;
    ...
    env.getProperty("xxx.yyy");