当前位置:  开发笔记 > 编程语言 > 正文

我的applicationContext中可以有多个PropertyPlaceHolderConfigurer吗?

如何解决《我的applicationContext中可以有多个PropertyPlaceHolderConfigurer吗?》经验,为你挑选了3个好方法。

我需要根据给定的系统属性加载特定的applicationContext.xml文件.这本身会加载具有实际配置的文件.因此,我需要2个PropertyPlaceHolderConfigurer,一个解析系统参数,另一个解析实际配置.

任何想法如何做到这一点?



1> flicken..:

是的,你可以做多个.请务必设置ignoreUnresolvablePlaceholders,以便第一个忽略它无法解析的任何占位符.


   
   
    
             classpath*:/my.properties
    
  



   
   
    
             classpath*:/myOther.properties
    
  

根据您的应用程序,您应该调查systemPropertiesMode,它允许您从文件加载属性,但允许系统属性覆盖属性文件中的值(如果已设置).


看看特伦顿的警告 - (jira.springsource.org/browse/SPR-6428) - 如果第二个PPC中加载的属性依赖于第一个PPC中加载的属性,它将无法工作!

2> Trenton..:

注意 - 可能存在与多个配置器相关的错误.有关详细信息,请参见http://jira.spring.io/browse/SPR-5719.

我无法让多人在当地工作......但我还没有责怪别人,除了我自己.


是的,请参阅https://jira.springsource.org/browse/SPR-6428 - 如果第二个PPC中加载的属性依赖于第一个PPC中加载的属性,它将无法正常工作!

3> weekens..:

另一种解决方案是使用PropertyPlaceholderConfigurer的placeholderPrefix属性.您为第二个(第三个,第四个......)配置器指定它,然后为所有相应的占位符添加前缀,因此不会发生冲突.





谢谢你的帮助.只有一件事 - 在我的情况下,我必须指定前缀,如'$ uploader {'和后缀'}'.所以我使用$ uploader {key.from.file}获取属性.你的解决方案只是默默地没有从文件中获取我的属性.
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有