2016-12-06 10 views
0

私はSpringアプリケーションイベントを使用して他のBeanに情報を送信しています。 Aが初期化されるとすぐにイベントを公開するBean Aがあります。そしてAは、他のBeanの間で初期化された時間に応じて、A.春のイベントがありません

によって送信されたイベントをリッスン豆Bがあり、Bは

方法A.

によって送信されるイベントを後半に初期化し、ミスますそのような問題を回避するために春に意図されていますか? Beanの初期化順序を変更する以外の方法はありますか?

+0

http://stackoverflow.com/questions/13770225/spring-3-bean-instantiation-sequence – nowszy94

答えて

1

一つの可能​​性の高い方法は

依存-にattribute.Youはあなたが

XML設定を使用している場合には、依存関係を定義することが

使用することです:

<bean id="A" depends-on="B"/> 

注釈ベース:

@DependsOn("B") 
public class A {} 

この力バネそれはあなたがあなたの豆でinit()メソッドを作成し、あなたのmain機能にinit()メソッドを呼び出すことができA.

+0

XMLの代わりに、対応する[アノテーション](http:// docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/DependsOn.html)。 –

+0

私はあなたがxml ..の代わりにアノテーションのリンクを言及していると信じています。彼がXMLまたはAnnotationに基づいているなら、OPは言及していない。 – mhasan

+0

はい、完全性のために対応する注釈をリンクしていますので、OPでもどちらかを選択できます。 –

0

によって公開されたイベントを見逃すことはありませんように、前にBをintializeします各豆の。あなたが好きなように電話を注文することができます。特に、B'sの前にAのinit()を呼んでください。 それから、ビーンAのイベントをAのinit()メソッドに公開する必要があります。

関連する問題