我有一个名为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处理属性文件中的值时,是否有一种方法可以包含$
字符?
答案 0 :(得分:1)
最简单的解决方法是将PropertyPlaceholderConfigurer
的{{1}}属性设置为ignoreUnresolvablePlaceholders
进行配置,这将导致它忽略无法解析的plcaeholders,而不是因异常而失败。或者,将true
更改为其他内容,例如placeholderPrefix
,然后使用
@{