下面的代码会有问题吗
来源:6-6 获取Spring上下文工具-ApplicationContextHelper开发

目科将
2018-08-09
我在一个spring管理的bean使用 springContextHelper注入另一个bean,这样会有问题吗?
主要是我看bean的生命周期是 先实例化-->填充属性->调用 setBeanName-->setBeanFactory-->setApplicationContext(我们的工具类依赖的是这一步吧)-->再调初始化相关的方法;如果生命周期是这样的,下面的代码是不是应该会有问题?不太理解整个过程,望老师解惑下
@Service public class AService{ private BMapper mapper = SpringContextHelper.getBean(BMapper.class); }
写回答
1回答
-
Jimin
2018-08-09
你好,这个其实是在spring容器启动初始化ApplicationContext时,额外做了些事情,留下了一个ApplicationContext的实例,这样凡是spring加载过的bean,就都可以用这个实例来获取。对于已经是使用spring管理的类,可以直接使用@Autowired、@Resource等注解来加载,很方便;但是有些类是spring没有管理的,比如filter,这些类在实际处理逻辑时,有时需要用到spring管理的bean,这种情况下使用ApplicationContext实例去获取就变得很容易了。这个和你说的生命周期不是一回事。
00
相似问题