更多内容欢迎关注我(持续更新中,欢迎Star✨)
Github:CodeZeng1998/Java-Developer-Work-Note
技术公众号:CodeZeng1998(纯纯技术文)
生活公众号:好锅(Life is more than code)
其他平台:CodeZeng1998、好锅
Bean的流程:
BeanDefinition
-> 构造函数
-> 依赖注入
-> Aware 接口 -> BeanNameAware -> BeanFactoryAware -> ApplicationContextAware
-> BeanPostProcessor#before
-> 初始化方法 -> InitializingBean -> 自定义 init 方法
-> BeanPostProcessor#after -> AOP -> 动态代理(JDK 动态代理、CGLIB 动态代理)
-> 销毁 bean
- BeanDefinition:Spring容器在进行实例化时,会将xml配置的
<bean>
的信息封装成一个BeanDefinition对象,Spring根据BeanDefinition来创建Bean对象,里面有很多的属性用来描述Bean。 - Bean 的创建和初始化赋值是分开的(加粗部分均为“初始化赋值”)
Spring的bean的生命周期:
- 通过BeanDefinition获取bean的定义信息
- 调用构造函数实例化bean
- bean的依赖注入
- 处理Aware接囗(BeanNameAware、BeanFactoryAware、ApplicationContextAware)
- Bean的后置处理器BeanPostProcessor-前置
- 初始化方法(InitializingBean、init-method)
- Bean的后置处理器BeanPostProcessor-后置
- 销毁bean
构造函数
-> 依赖注入
-> Aware接口<