私は起動時に初期化したい私のJEEアプリケーションに2つのシングルトンを持っています。このような何かを:本当にSERVICEAを必要としません@PostConstructの実行順序
@Singleton
@Startup
public class ServiceB {
@EJB
private ServiceA a;
@PostConstruct
private void init() {
....
}
}
ServiceBが、私は(読み:PostConstructメソッドが終了@)サービスAが完全に初期化されていることを確認するために、依存関係を追加ServiceBのinit()の前方法 - が開始されます。
しかし、それは待っていません。 ServiceBはServiceAの前に実際に起動します。
1つのBeanの@ PostConstruct-メソッドが別のBeanの@ PostConstruct-メソッドが完了するのを待つ方法はありますか?
私はちょうどSERVICEAで@PostConstruct注釈を削除し、ServiceB
から直接@PostConstruct init() {
a.init();
}
それを呼び出すことができます知っているが、私はServiceBがない展開を持っています。だから私はServiceBをServiceAの初期化に頼ることができません。 ServiceAはそれ自体を行う必要があります。そしてServiceBはServiceAがそれで完了するのを待たなければなりません。