1. Bean创建流程
1. BeanFactory(Bean工厂,也是spring容器的根接口,spring容器的启动入口)读取配置文件(XML、properties等)中的BeanDefinition(Bean定义信息);
2. 解析读取到的BeanDefinition,通过jdk反射的方式实例化Bean,开辟内存空间
3. 初始化Bean,初始化分为以下几个步骤:
a. 填充属性,通常调用set方法进行属性填充
b. 设置Aware接口的属性(当容器创建的Bean需要获取到容器对象本身或在具体操作中需要用到容器中的其他bean,可以通过实现Aware接口来实现)
c. 执行BeanPostProcessor:before前置处理方法(前置增强)
d. 执行Bean的init方法
f. 执行BeanPostProcessor:after后置处理方法(后置增强)
g. 最后生成完整的Bean,放入容器中,通过context.getBean可获取bean对象
AOP就是通过前置增强和后置增强来完成的。