使用Jboss阅读PropertyPlaceholderConfigurer类路径Spring

时间:2018-08-21 09:26:45

标签: java spring jboss

使用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>,但是似乎没有用。

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您的spring-servlet.xml未链接到您的spring-security.xml。因此spring-security.xml不了解PropertyPlaceholderConfigurer

IMO,您应该在PropertyPlaceholderConfigurer中配置properties-context.xml(例如),以便可以按以下方式import将此新文件放入spring-servlet.xmlspring-security.xml中:

<import resource="classpath:properties-context.xml" />