SpringBoot手动获取Bean类

本文介绍在多线程环境下,如何安全地从Spring框架中获取Bean实例。通过实现ApplicationContextAware接口并覆盖setApplicationContext方法,可以手动获取applicationContext,进而安全地获取所需的Bean类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般在多线程的环境中,bean类的获取不能通过自动装载来获取到,spring会认为其不安全,也就是不能用@Autowired注解来获取bean类。

这时候需要来在Spring中来手动获取bean类。

  • 需要继承实现ApplicationContextAware接口
@Component
public class BeanFactoryTest implements ApplicationContextAware {

    private ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext=applicationContext;
    }

    public ApplicationContext getApplicationContext() {
        return applicationContext;
    }
}

该接口下setApplicationContext方法是需要实现的,该方法将spring的applicationContext引用赋值给自定义的applicationContext

获取对应的bean类实现如下:

 BlogService blogService=beanFactoryTest.getApplicationContext().getBean(BlogService.class);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值