使用PropertyPlaceholderConfigurer
外部化弹簧配置
属性。
将以下代码添加到spring-servlet.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:environment.properties</value>
</property>
</bean>
要从spring-security.xml
外部化的过滤器
<security:custom-filter position="AUTH_FILTER" ref="${filter}" />
filter
值出现在environment.properties
environment.properties
文件位于Jboss模块内部,可以使用资源包从代码中读取。
但是,通过这些更改,发布代码时以某种方式未加载属性文件,并且引发了以下错误。
原因:java.lang.IllegalArgumentException:无法解决 字符串值“ $ {filter}”中的占位符“ filter”
PS:
也尝试将硬编码路径设置为<value>file:${jboss.home.dir}/modules/system/layers/base/configuration/main/environment.properties</value>
,但是似乎没有用。
答案 0 :(得分:1)
我认为您的问题是您的spring-servlet.xml
未链接到您的spring-security.xml
。因此spring-security.xml
不了解PropertyPlaceholderConfigurer
。
IMO,您应该在PropertyPlaceholderConfigurer
中配置properties-context.xml
(例如),以便可以按以下方式import
将此新文件放入spring-servlet.xml
和spring-security.xml
中:
<import resource="classpath:properties-context.xml" />