bean生命周期图

步骤如下:
xml配置,解析Bean完,读取到内存中,将xml配置bean解析为内存中BeanDefinition对象;bean如果需要检查,实现接口BeanFactoryPostProcessor,bean生成后的结果集给需要检查的这个类;然后到BeanFactory统一处理的bean并生成,工厂会先实例化bean,set设置属性值(set、构造函数),配置好属性值之后,spring会看这个bean是否实现Aware接口(感知接口),如果实现了,bean会将上下文对象和Aware需要的东西给它。Beafore方法bean执行之前调用,然后init方法调用,After方法表示bean执行后调用。到此完成bean创建完成----destroy销完
实例化 Instantiation
属性赋值 Populate
初始化 Initialization
销毁 Destruction
核心对象
- BeanDefinitionReader(解析bean定义)。在Spring容器启动的过程中,将bean解析成Spring 内部的BeanDefinition结构。既将spring.xml 中的bean标签转为beanDefinition结构。类似XML的解析。
- BeanFactoryPostProcessor是Spring容器功能的扩展接口。
- BeanFactory:bean工厂。它按照我们的要求生产我们需要的各种各样的bean
- Aware感知接口:在实际开发中,经常需要用到Spring容器本身的功能资源
- BeanPostProcessor:后置处理器。在Bean对象实例化和引入注入完毕后,在显示调用初始化方法的前后添加自定义的逻辑。(类似于AOP的绕环通知)
前提条件:如果检测到Bean对象实现了BeanPostProcessor后置处理器才会执行 Before和After方法 BeanPostProcessor 1)Before2)
2)调用初始化Bean(InitializingBean和init-method,Bean的初始化才算完成)
3)After完成了Bean的创建工作