Spring中的aware接口&原理分析

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

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

从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方法的。进去之后 

 很明显这里bean就拿到了spring的内部一些属性。

猜你喜欢

转载自blog.csdn.net/ygy982883422/article/details/105306801
今日推荐