私は比較的新しい Spring ユーザーであり、このフレームワークを使用して複雑なネストされた構成をロードすることに興味があります。
以下は、私のアーキテクチャ設計の疑似コードです。
class **A** implements runnable{
int x;
Collection<**B**> clist; //not fixed size list,
run(){
// if (something happens)
// new Thread(**B**(y,z,w))
}
}
class **B** implements runnable{
int y;
int z;
int w;
Array<**C**> bclist; // fixed size array of C known at init time
run(){
process...
}
}
class **C**{
int v;
int l;
}
Ax、By、Bz、Bw、B.clist、Cv、および Cl を構成できる必要があります。
新しいスレッドごとに B の初期化に関連する 1 つの問題があります。コンパイル時に clist が空のままかどうかはわかりません。実行時にのみ、作成されるスレッドの数がわかります。新しいスレッドごとに、同じ構成で新しい B を作成します。
(オートワイヤーとプロトタイプ機能を調べましたが、何らかの形で役立つのではないかと思います)
編集
ここにxmlサンプルファイルがあります:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="A" class="...">
<property name="x" value="150" />
<!-- HERE IS MY PROBLEM-->
<property name="clist">
<list>
<ref bean="B" />
</list>
</bean>
<bean id="B" class="...">
<property name="y" value="20" />
<property name="z" value="7" />
<property name="w" value="7" />
<property name="bclist">
<list>
<ref bean="C" />
</list>
</bean>
<bean id="C" class="...">
<property name="v" value="3" />
<property name="l" value="1" />
</bean>
</beans>