允许在PropertyPlaceholderConfigurer管理的属性文件中使用$字符

时间:2013-04-08 09:29:08

标签: java spring properties

我有一个名为setting.properties的属性文件,以及以下内容:

authentication.provider=${Home_Url}/idm/names.lst

我通过PropertyPlaceholderConfigurer框架内的Spring使用此文件,如下所示:

<bean id="acl.authentication.provider" class="java.lang.String">
    <constructor-arg index="0" value="${authentication.provider}"/>
</bean>

但是当我初始化上面的上下文时,我收到以下错误:

  

线程“main”中的异常org.springframework.beans.factory.BeanDefinitionStoreException:
  类路径资源[context.xml]中定义的名称为'acl.authentication.provider#0'的bean定义无效:无法解析占位符'Home_Url'

我的问题是:当使用PropertyPlaceholderConfigurer处理属性文件中的值时,是否有一种方法可以包含$字符?

1 个答案:

答案 0 :(得分:1)

最简单的解决方法是将PropertyPlaceholderConfigurer的{​​{1}}属性设置为ignoreUnresolvablePlaceholders进行配置,这将导致它忽略无法解析的plcaeholders,而不是因异常而失败。或者,将true更改为其他内容,例如placeholderPrefix,然后使用

@{