あなたの問題は、私が数日前に経験したのとほぼ同じだと思います。私は次のことがあなたのために働くべきだと思います:
まず、AppContextManager
以下のようなクラスを作成します。
@Component
public class AppContextManager implements ApplicationContextAware{
private static ApplicationContext _appCtx;
@Override
public void setApplicationContext(ApplicationContext ctx){
_appCtx = ctx;
}
public static ApplicationContext getAppContext(){
return _appCtx;
}
}
で上記のクラスに注釈@Component
を付けるか、AppContextManager の Bean を宣言しますapplication context xml
。
non-singleton
non-spring
インスタンスで次のコード スニペットを使用して、他の Spring Bean を取得します。
ApplicationContext ctx = ApplicationContextManager.getAppContext();
SomeSpringBean bean = ctx.getBean(SomeSpringBean.class);
これにより、コード内の任意の場所に Bean インスタンスが表示されます。