我有这样的课程:
Class Food
int type
String name
Class Dog
String dogName
Food food
我想使用Spring属性初始化Dog
类,这样做没有问题,可以初始化dogName
值:
<bean id="dog" class="....Dog">
<property name="dogName" value="dog"/>
...
</bean>
如何为Food
对象设置值?
答案 0 :(得分:2)
使用ref in来引用食物的bean id。
<bean id="food" class="....Food"></bean>
<bean id="dog" class="....Dog">
<property name="dogName" value="dog"/>
<property name="food" ref="food"/>
</bean>
<bean id="dog" class="c...dog">
<property name="dogName" value="dog"/>
<property name="food" >
<bean class="...food">
<property name="type" value="1"/>
<property name="name" value="chicken"/>
</bean>
</property>
</bean>
,如果是内部的,则不能在父bean标记之外使用它
<bean id="dog" class="c...dog">
<property name="dogName" value="dog"/>
<property name="food" >
<bean class="...food">
<property name="type" value="1"/>
<property name="name" value="chicken"/>
</bean>
</property>
</bean>
答案 1 :(得分:1)
<property name="food">
<bean class="...Food">
<property name="type" value="1"/>
<property name="name" value="Apple"/>
</bean>
</property>
请参见春季3.3.2.3. Inner beans:
或元素内的元素用于定义所谓的内部bean。内部bean定义不需要定义任何id或名称,最好甚至不要指定任何id或名称值,因为id或名称值只会被容器忽略。
<bean id="outer" class="..."> <!-- instead of using a reference to a target bean, simply define the target bean inline --> <property name="target"> <bean class="com.example.Person"> <!-- this is the inner bean --> <property name="name" value="Fiona Apple"/> <property name="age" value="25"/> </bean> </property> </bean>
答案 2 :(得分:0)
使用ref
中的<property>
来引用食物的bean ID。
<bean id="food" class="....Food">
</bean>
<bean id="dog" class="....Dog">
<property name="dogName" value="dog"/>
<property name="food" ref="food"/>
</bean>