Spring中的aware接口&原理分析

Spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。

aware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有Aware前面的含义。 

Spring中的aware接口&原理分析_第1张图片

从spring源码来分析,的话,实现了这些接口的实例,能获取到系统中的一些属性。
比如实现了BeanNameAware 的对象,能拿到bean在系统中的名字,
比如实现了ApplicationContextAware的对象,能拿到整个ApplicationContext上下文的引用。
我们看下原码。

//填充bean,包括各种属性,这些属性就包括对于别的bean的依赖,这种依赖会引起递归初始化bean
populateBean(beanName, mbd, instanceWrapper);
//调用注入类的init-method方法
exposedObject = initializeBean(beanName, exposedObject, mbd);

exposedObject = initializeBean(beanName, exposedObject, mbd);这句代码是调用init方法的。进去之后 

Spring中的aware接口&原理分析_第2张图片

Spring中的aware接口&原理分析_第3张图片 很明显这里bean就拿到了spring的内部一些属性。

你可能感兴趣的:(spring原码)