企业网络推广网站,重庆市建设政务中心网站,ps做的网站模板,wordpress meta 导出Bean 生命周期
一、Bean 实例化的基本流程
Spring容器在进行初始化时#xff0c;会将xml配置的的信息封装成一个BeanDefifinition对象#xff0c;所有的BeanDefifinition存储到一个名为beanDefifinitionMap的Map集合中去#xff0c;Spring框架在对该Map进行遍历#xff0…Bean 生命周期
一、Bean 实例化的基本流程
Spring容器在进行初始化时会将xml配置的的信息封装成一个BeanDefifinition对象所有的BeanDefifinition存储到一个名为beanDefifinitionMap的Map集合中去Spring框架在对该Map进行遍历使用反射创建Bean实例对象创建好的Bean对象存储在一个名为singletonObjects的Map集合中当调用getBean方法时则最终从该Map集合中取出Bean实例对象返回
二、具体步骤
总体分为四个阶段实例化 》 属性注入 》 初始化 》销毁
1、实例化 Bean
根据配置文件中 Bean 的定义利用反射技术创建 Bean 的实例
2、注入对象依赖的属性值或对象
3、处理各种Aware接口
4、执行 BeanPostProcessor 前置处理
如果想对 Bean 进行一些自定义的前置处理那么可以让 Bean 实现 BeanPostProcessor 接口
将会在该阶段调用 POSTProcessBeforeInitializationObject objString s方法
5、执行InitializingBean初始化方法
如果 Bean 实现了 InitializingBean 接口执行 afeterPropertiesSet() 方法
6、执行init-method自定义初始化方法
如果 Bean 在Spring 配置文件中配置了 init-method 属性则会自动调用其配置的初始化方法
7、执行BeanPostProcessor后置处理
如果这个 Bean 实现了BeanPostProcessor接口将会调postProcessAfterInitialization(Object objString s)方法由于这个方法是在 Bean初始化结束后调用;
8、执行DisposableBean销毁Bean
当 Bean 不再需要时会经过清理阶段如果 Bean实现了 DisposableBean 这个接口会调用其实现的 destroy()方法执行销毁;
9、执行destroy-method自定义销毁方法
如果这个 Bean 的 Spring 配置中配置了destroy-method 属性会自动调用其配置的自定义销毁方法