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.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で同じことを実行できない場合、これは悪い設計ではありませんか?

4

1 に答える 1

1

ここでもSpring ELが機能します。以前の質問よりもさらに簡潔です-

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