在我的项目中,我有多个上下文文件。我正在使用如下所示的属性占位符加载属性文件。
以下是我的context.xml文件。
a.xml
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:${conf.path}/devconfiguration.xml" />
<!--<property name="location" value="file:${conf.path}/sitconfiguration.xml" />
<property name="location" value="file:${conf.path}/uatconfiguration.xml" />
<property name="location" value="file:${conf.path}/prodconfiguration.xml" />-->
</bean>
b.xml
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:${conf.path}/devconfiguration.xml" />
<!--<property name="location" value="file:${conf.path}/sitconfiguration.xml" />
<property name="location" value="file:${conf.path}/uatconfiguration.xml" />
<property name="location" value="file:${conf.path}/prodconfiguration.xml" />-->
</bean>
c.xml
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:${conf.path}/devconfiguration.xml" />
<!--<property name="location" value="file:${conf.path}/sitconfiguration.xml" />
<property name="location" value="file:${conf.path}/uatconfiguration.xml" />
<property name="location" value="file:${conf.path}/prodconfiguration.xml" />-->
</bean>
每次我们要更改所有上下文文件时都会获取war文件。他们是否可以为整个项目拥有一个房产持有人。 我试过但是我不能在不使用属性占位符bean的情况下加载属性文件。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以将b.xml
和c.xml
的定义导入a.xml
<beans> // a.xml
...
<import resource="classpath:b.xml"/>
<import resource="classpath:c.xml"/>
现在,b.xml
c.xml
和a.xml
的所有定义
你可以在任何xml的
中定义它们<context:property-placeholder
location="classpath:a.properties,
classpath:b.properties,
classpath:c.properties"
ignore-unresolvable="true"/>
或者如果您没有使用context
命名空间
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:a.properties</value>
<value>classpath:b.properties</value>
<value>classpath:c.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
答案 1 :(得分:0)
如果我正确理解了场景,那么每个环境有3个配置?也许是区域性的,你可以在不同的xml文件之间切换。
您应该做的只是一个xml文件,它解析为属性文件中的属性。
资源文件夹中每个环境都有一个属性文件。
在启动时,您可以传递一个jvm参数来设置“区域”或您识别环境的方式,然后“填充”您的xml,其中存在属性文件中值的占位符。
此site应该可以帮助您开始使用。