我对遗留代码(它的Spring应用程序)进行了分析,发现在Spring上下文中初始化了PropertySourcesPlaceholderConfigurer
和PropertyPlaceholderConfigurer
。我知道Spring上下文中只应存在PropertyPlaceholderConfigurer
的一个实例。我的问题是,此规则是否适用于PropertySourcesPlaceholderConfigurer
和PropertyPlaceholderConfigurer
。将两者都纳入背景是错误的吗?
答案 0 :(得分:2)
可以注册多个属性配置。但是如果PlaceholderConfigurer都引用了同一组属性,那么它的配置错误就应该避免。
否则,在注册多个PlaceholderConfigurer时,正确指定bean的顺序非常重要。因此Spring可以为占位符解析正确的值。
你可以在这里找到一个好的阅读。
答案 1 :(得分:1)
PropertySourcesPlaceholderConfigurer 通过利用Spring 3.1中提供的Environment和PropertySource机制更加灵活。
PropertyPlaceholderConfigurer仍然适用于:
PropertySourcesPlaceholderConfigurer 此类被设计为Spring 3.1应用程序中PropertyPlaceholderConfigurer的一般替代品。默认情况下,它使用property-placeholder元素来处理spring-context-3.1 XSD,而spring-context version< = 3.0默认使用PropertyPlaceholderConfigurer来确保向后兼容性。