实例化Bean
过程如下
class-->实例化-->对象-->属性填充(属性依赖注入)--->初始化 afterPropertiesSet()--->AOP:BeanPostProcessor 后置处理(寻找切面)--->代理对象-->bean对象
注意:如果不需要AOP,直接返回之前实例化的对象,需要的话,将代理对象返回。
AbstractBeanFactory完成对不同getBean请求的响应,查询Bean定义及销毁方法的注册 ,实例化bean和依赖注入是在AbstractBeanFactory的入口,但是实际还是在AbstractAutowireCapableBeanFactory这个类中实现。
AbstractAutowireCapableBeanFactory做为AbstractBeanFactory的子类,它最主要的功能就是实现了默认的bean创建方法createBean().而在这个创建过程中,提供了诸如bean的属性注入,初始化方法的调用,自动装配的实现,bean处理器的调用。
先看下实例化时序图:
再看下UML:
参考:https://992012.iteye.com/blog/1916057