1

Spring XML 中有复合属性名称,但我找不到复合属性值。

假设我有Person以下原型的吸气剂:

class Person {
   Person getFather();
   void setFather(Person value);
   String getAge();
   void setAge(String value);
   ...
}

Company原型如下:

class Company {
   Person getOwner();
   void setOwner(Person value);
   ...
}

我可以将这些与类似的东西联系起来吗

<bean id="Bob" class="Person"/>

<bean id="Barnyard" class="Company">
   <property name="owner" ref="Bob.father"/>
</bean>

上面说“没有带有Bob.fatherid的bean”不起作用。

以下也不起作用

<bean id="Barnyard" class="Company">
   <property name="owner" value="Bob.father"/>
</bean>

说不能转换StringPerson.

如何实现?

更新

假设我想设置公司所有者的年龄。显然我应该这样写:

<bean id="Barnyard" class="Company">
   <property name="owner" value="#{Bob.father}"/>
   <property name="owner.age" value="38"/>
</bean>

当我可以在左边使用属性的属性但不能在右边做同样的事情时,这不是一个糟糕的设计吗?

4

1 回答 1

1

Spring EL 也可以在这里工作,甚至比您之前的问题更简洁-

<bean id="Barnyard" class="Company">
   <property name="owner" value="#{Bob.father}"/>
</bean>
于 2012-10-10T22:28:33.620 回答