インターフェイスを実装する複数の Bean がある場合ApplicationListener<ContextRefreshedEvent>
、特定の Bean が他の Bean の前に呼び出されるように制御するにはどうすればよいですか?
Bean 自体の内部で依存関係を処理する方が理にかなっていますか?
Ordered インターフェースを実装して、この順序を指定できます。このブログ投稿を参照してください。
では、実装された BeanAbstractApplicationContext
の登録を処理する次のスニペットを見ることができました。ApplicationListener
Collection listeners = getBeansOfType(ApplicationListener.class, true, false).values();
for (Iterator it = listeners.iterator(); it.hasNext();) {
addListener((ApplicationListener) it.next());
}
ここgetBeansOfType
で返されることが判明したMap
ため、順序付けは非決定論的です。の場合はこのように動作しspring-2.0
ます。