我正在尝试使用PropertySourcesPlaceholderConfigurer
。然而,我对"本地财产"的概念感到困惑。和"环境属性",如Spring API javadoc:
本地属性的搜索优先级基于的值 localOverride属性,默认为false表示本地 在所有环境属性之后最后搜索属性 源。
例如,什么是本地财产?什么是环境属性?它们是如何在代码中定义的?分离两者的理由是什么?
非常感谢。
答案 0 :(得分:4)
环境属性是来自环境的属性:)。这些是你可以通过的属性
System.getenv()
System.getProperties()
Spring注册了这两个并使它们可供您使用。
本地属性是您使用PropertySourcesPlaceholderConfigurer
声明的属性。
PropertySourcesPlaceholderConfigurer c = new PropertySourcesPlaceholderConfigurer();
c.setLocation(new ClassPathResource("/some.properties"));
您可能希望在本地属性中具有相同键的属性。您可以使用localOverride
来确定优先级。请记住,属性存储在PropertySource
个对象中。 Spring将遍历所有已注册的PropertySource
对象,并返回它为您提供的密钥找到的第一个属性。