首页 > 编程语言 > 详细

Spring boot项目中线程中无法注入bean的可替代方法

时间:2020-04-04 22:20:11      阅读:60      评论:0      收藏:0      [点我收藏+]

在spring编程过程中,多线程中是我们经常使用的,但是在线程中,我们是无法通过@Autowired注解来注入我们想要的bean的,所以需要向另外的方法来实现,下面是两种实现方式

1、通过线程的构造函数将需要的bean在构造线程的时候通过调用者注入bean,通过构造函数注入相应bean来实现

2、通过SpringIoc容器beanfactory或者applicationcontext来获取对应的bean

通过继承ApplicationContextAware来获取applicationcontext

@Component
public class ApplicationContextHolder implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}

public static Object getBean(String beanName){
return applicationContext.getBean(beanName);
}

public static Object getBean(Class o){
return applicationContext.getBean(o);
}
}
通过继承BeanFactoryAware 获取beanfactory容器
@Component
public class BeanFactoryHolder implements BeanFactoryAware {

private static BeanFactory beanFactory;
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
}

Spring boot项目中线程中无法注入bean的可替代方法

原文:https://www.cnblogs.com/hik-wolf/p/12634143.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!