Bean のインスタンス化シーケンスが重要な問題に遭遇しました。現在、下の Bean3 は DB ベースのキャッシュ put 操作を実行しており、Bean 1 は Proxy Bean2 を使用して新しく作成されたキャッシュに対してクエリを実行しています。優先順位は、Bean1 がインスタンス化される前に、つまり Spring コンテナが起動するときに、Bean3 と Bean 2 が完全にインスタンス化されることです。これらの Bean は個別の JARS にあり、Bean1 への Bean2 参照は Autowired を使用していません。代わりに、サービスロケーターが参照を提供しています。Spring 2.5.2 を使用しており、Bean のインスタンス化には XML を使用していません。どんな助けでも大歓迎です!
JAR1 (春のプロジェクト)
@Service ("bean3") public class Bean3 implements ApplicationListener { public void onApplicationEvent() { //load data from DB and populate cache } public void getCache(){ //get data from cache }
}
@Service ("bean2") public class Bean2 { @Autowired private Bean3 bean3; private void methodA(){ bean3.getCache(); } }
JAR2 (Spring 以外のプロジェクト)
public class Bean1{ Bean2 bean2 = SpringServiceLocator.getBean("bean2") public void methodB(){ bean2.methodA(); } }