最近做项目需要在Listener中获取一个Bean,首先会去getBean方式获取,set一些值,然后Autowired注入的时候莫名丢失,感觉苦恼。
最终做过尝试,使用下面方法解决这个问题:
public class BeanFactory implements BeanFactoryAware{
private static org.springframework.beans.factory.BeanFactory beanFactory;
@Override
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws BeansException {
this.beanFactory=beanFactory;
}
public static Object getBean(String beanId){
return beanFactory.getBean(beanId);
}
}
定义一个BeanFactory工具类,从该工具类中去获取需要的Bean,至于原因后续再深究,解决问题为当前最重要的事情。
还有从别的博客上面看到下面两种解决方法,后续待验证