Spring PropertySourcesPlaceholderConfigurer:本地属性还是环境属性?

时间:2014-07-27 03:42:58

标签: java spring

我正在尝试使用PropertySourcesPlaceholderConfigurer。然而,我对"本地财产"的概念感到困惑。和"环境属性",如Spring API javadoc:

  

本地属性的搜索优先级基于的值   localOverride属性,默认为false表示本地   在所有环境属性之后最后搜索属性   源。

例如,什么是本地财产?什么是环境属性?它们是如何在代码中定义的?分离两者的理由是什么?

非常感谢。

1 个答案:

答案 0 :(得分:4)

环境属性是来自环境的属性:)。这些是你可以通过的属性

System.getenv()
System.getProperties()

Spring注册了这两个并使它们可供您使用。

本地属性是您使用PropertySourcesPlaceholderConfigurer声明的属性。

PropertySourcesPlaceholderConfigurer c = new PropertySourcesPlaceholderConfigurer();
c.setLocation(new ClassPathResource("/some.properties"));

您可能希望在本地属性中具有相同键的属性。您可以使用localOverride来确定优先级。请记住,属性存储在PropertySource个对象中。 Spring将遍历所有已注册的PropertySource对象,并返回它为您提供的密钥找到的第一个属性。