0
次のような状況を想定しましょう。xmlのAutowire @Resourceを使って豆のリストを生成するには
<bean id="a" class="com.example.A" />
<bean id="b" class="com.example.B" />
<bean id="c" class="com.example.C" />
<bean id="d" class="com.example.D" >
<property name="myList" ref="myListBean">
</bean>
とJava設定ファイル::春のXML設定ファイルで作成された豆があるので、@Resource D dの
@Configuration
@ImportResource("path/to/beans.xml")
class JavaConfiguration {
@Resource
A a;
@Resource
B b;
@Resource
D d;
@Resource
C c;
@Bean
List myListBean(){
List l = new ArrayList();
l.add(a);
l.add(b);
l.add(c);
return l;
}
}
は@Resource C Cの前では、ビーンズmyListBeanは "のみが含まれます{ a、b、null}を返します。私がそれを切り替え、@Resource CがDの前にあるなら、すべてが正しかった。その状況を避けるための良い習慣はありますか?フィールドの順序に依存せず、ヌルでBeanリストを作成しないようにしますか?
Configurationクラスをお持ちの場合は、すべてのBeanをクリーナーとして定義することをお勧めします。しかし、beans-declarationにdepends-onフラグを置くことはできます。 –
私がここに示した例はあまり実践的ではないことを完全に認識しています。それは私が実際に取り組んでいるプロジェクトのレガシーコードの一部です。私はこれまでより良いことができるかどうか疑問に思っています。私たちは将来リファクタリングを行いますが、これはもっと大きなケースです。 –