下面的代码会有问题吗

来源: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实例去获取就变得很容易了。这个和你说的生命周期不是一回事。

0
0

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程