我一直在使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
,根据我的经验(“需要引用”,哈哈),它会全局设置属性值。
是否可以在同一应用程序上下文xml中为不同的bean指定不同的PropertyPlaceholderConfigurer
实例?
我当前的代码类似于
<bean id="a" class="X">
<property name="foo" value="bar"/>
<property name="many" value="more"/>
</bean>
<bean id="b" class="X">
<property name="foo" value="baz"/>
<property name="number_of_properties" value="a zillion"/>
</bean>
我想做类似的事情(下面的伪代码):
<bean id="a" class="X">
... parse the contents of "a.properties" here ...
</bean>
<bean id="b" class="X">
... parse the contents of "b.properties" here ...
</bean>
上面是不起作用的伪代码来说明这个概念;关键是,我希望使用不同的属性文件来填充每个bean。
为什么?
我想在单独的属性文件中而不是在XML中拥有这些特定的属性。
答案 0 :(得分:0)
我认为以下链接可以为您提供帮助。 Reference Link
其中@Value(“ $ {my.property.name}”)批注用于将属性文件绑定到类型为Properties的变量,该变量将驻留在您打算使用该属性文件的bean类中。
,您可以如下定义多个属性占位符:
<bean id="myProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath*:my.properties</value>
</list>
</property>
</bean>
,并在bean变量中使用id作为参考,以将属性文件初始化为bean。
与占位符bean一起包含将很方便。
请参阅Importance of Unresolvable Placeholder链接以获取有关其用法的详细信息。
希望这会有所帮助。