Spring XML中的常见值配置

pop*_*der 2 java configuration spring

我有几个Spring bean,其中所有属性值之一都是相同的String值.有没有办法我可以String在一个地方用XML 定义它并在属性值设置的所有bean中引用它?

<bean id="somebean" class="test.SomeBean">
   <property name="property1" ref="someValue"></property>
   <property name="commonProperty" value="commonValue"></property>
Run Code Online (Sandbox Code Playgroud)

<bean id="nextBean" class="test.NextBean">
   <property name="property2" ref="someValue"></property>
   <property name="commonProperty" value="commonValue"></property>
Run Code Online (Sandbox Code Playgroud)

如何commonValue在一个单独的地方设置并在两个地方引用它?

Roh*_*han 5

试试这样吧.

<bean id="commonConfig" abstract="true">
    <property name="commonField" value="CommonValue"></property>
</bean>

<bean id="class1" class="com.dataclass.Class1" parent="commonConfig">
    <property name="field1" value="value1"></property>
</bean>
<bean id="class2" class="com.dataclass.Class2" parent="commonConfig">
    <property name="field2" value="value2"></property>
</bean>
Run Code Online (Sandbox Code Playgroud)

Class1和Class2有一个公共字段名称"commonField",parent属性仅用于此通用目的.

在Spring中,这称为bean定义继承(这不是java类继承,上面的示例Class1&n Class不在它们各自的java文件中继承.)

有关更多详细信息,请查看Spring doc的链接.