我有一个方法,它将java.util.Properties
对象作为构造函数参数。它目前正在通过Spring构建(参见docs):
<bean id="myObj" class="myClass">
<constructor-arg>
<value>
prop1=1
prop2=2
</value>
</constructor-arg>
</bean>
现在我想提取这个<value>...</value>
块,以便我可以创建从这些基本属性继承但覆盖/删除/添加一些属性的其他Properties
bean。请注意,如果可能,我希望保留<value></value>
格式。
我尝试使用<util:properties>
,但似乎无法使用与<value></value>
中相同的格式。
我也尝试使用
<bean id="test" class="java.util.Properties">
<constructor-args>
<value>
test1=1
test2=2
</value>
</constructor-args>
</bean>
似乎即使java.util.Properties
中有一个复制构造函数,它也不起作用(给出一个空的Properties对象)。此外,如果我有一个java.util.Properties bean,我将如何使用另一个属性list / bean覆盖/扩展它?
答案 0 :(得分:0)
你可以这样做:
<bean name="props" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<value>
test1=1
test2=2
</value>
</property>
</bean>
然后引用其他地方的常用属性集:
<bean id="myObj" class="myClass">
<constructor-arg ref="props">
</constructor-arg>
</bean>
答案 1 :(得分:0)
似乎人们审阅我的编辑不是很有帮助而且不理解它。因此,我将在这里发布完整的答案。
<bean name="props" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<value>
test1=1
test2=2
</value>
</property>
</bean>
<bean name="props2" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="propertiesArray">
<list>
<ref bean="props">
<value>
test1=OVERRIDE!
</value>
</list>
</property>
</bean>
<bean id="myObj" class="myClass">
<constructor-arg ref="props2">
</constructor-arg>
</bean>
答案 2 :(得分:0)
使用Spring 3,你可以这样做:
<util:properties id="myProperties">
<prop key="test1Key">test1Value</prop>
<prop key="test2Key">test2Value</prop>
</util:properties>
<bean id="myObj" class="myClass">
<constructor-arg index="0" ref="myProperties" />
</bean>