之前一直困扰的关于在XML文件中使用spring读取资源文件,并使用${}占位符替换的问题,现在终于搞明白了。
- 如果存在多个XML文件需要使用资源文件占位替换,必须在每个XML文件的头部进行首先加载。
- 在多个XML文件中注入资源文件时,配置order,并设置ignoreUnresolvablePlaceholders=true
具体配置如下:
<!-- 引入外部数据源配置信息 必须要放在XML头部加载 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!-- 否忽略找不到的属性. -->
<property name="ignoreResourceNotFound" value="true" />
<!-- ignoreUnresolvablePlaceholders为是否忽略不可解析的Placeholder,
如配置了多个PropertyPlaceholderConfigurer,则需设置为true -->
<property name="ignoreUnresolvablePlaceholders" value="true" />
<!-- order属性代表其加载顺序 value数字越小越先加载 -->
<property name="order" value="2" />
<property name="locations">
<list>
<value>classpath:runMode/db.properties</value>
</list>
</property>
</bean>