Я думаю, что ваша проблема примерно такая же, как и у меня несколько дней назад. Я думаю, что следующее должно работать для вас:
Сначала создайте класс с именем 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
или объявите bean-компонент для AppContextManager в вашем application context xml
.
Теперь в вашем экземпляре non-singleton
non-spring
используйте следующий фрагмент кода, чтобы получить любой другой
фасоль:
ApplicationContext ctx = ApplicationContextManager.getAppContext();
SomeSpringBean bean = ctx.getBean(SomeSpringBean.class);
И это даст вам экземпляр компонента в любом месте вашего кода.