2

インターフェイスを実装する複数の Bean がある場合ApplicationListener<ContextRefreshedEvent>、特定の Bean が他の Bean の前に呼び出されるように制御するにはどうすればよいですか?

Bean 自体の内部で依存関係を処理する方が理にかなっていますか?

4

2 に答える 2

1

Ordered インターフェースを実装して、この順序を指定できます。このブログ投稿を参照してください。

于 2016-07-27T09:39:06.710 に答える
1

では、実装された 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ます。

于 2013-02-12T14:58:01.063 に答える