【发布时间】:2012-10-01 10:59:42
【问题描述】:
Spring XML 中有复合属性名称,但我找不到复合属性值。
假设我有Person getter,其原型如下:
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.father id 的bean”不起作用。
下面的也行不通
<bean id="Barnyard" class="Company">
<property name="owner" value="Bob.father"/>
</bean>
无法将String 转换为Person。
如何实现?
更新
假设我想设置公司所有者的年龄。显然我应该这样写:
<bean id="Barnyard" class="Company">
<property name="owner" value="#{Bob.father}"/>
<property name="owner.age" value="38"/>
</bean>
当我可以在 LEFT 使用属性的属性但不能在 RIGHT 做同样的事情时,这不是一个糟糕的设计吗??
【问题讨论】:
标签: java xml spring javabeans applicationcontext