java - 在 RHS 处引用 Spring XML 中的属性的属性?

标签 java xml spring javabeans applicationcontext

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

假设我有具有以下原型(prototype)的 Person getter:

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

Company原型(prototype)如下:

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>

当我可以使用左侧属性的属性但不能在右侧执行相同操作时,这不是一个糟糕的设计吗?

最佳答案

Spring EL 也可以在这里工作,甚至比你的问题 previously 更简洁。 -

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

关于java - 在 RHS 处引用 Spring XML 中的属性的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828387/

相关文章:

java - 间接 Hibernate/JPA 方法调用丢失事务

spring - 在 Spring Security 3 中动态创建新角色和权限

java - 将 Ascii 值直接转换为 Hex 值

java - 在 Java 中识别无声的 wav 文件

重复方法调用的 Java 编译器优化?

java - Android 网页 View ajax

c# - 将 T-SQL 转换为 LINQ-to-SQL

xml - 直接与间接嵌套结构

java - 描述 资源路径 位置类型 与元素类型 "p"关联的属性 "p:sessionFactory-ref"的前缀 "beans:bean"未绑定(bind)

java - Spring Hibernate 保存/提交事务而不调用 Save 方法