Spring初始化过程
2020-02-06 13:14:09 0 举报
spring中bean的初始化过程
作者其他创作
大纲/内容
实例化过程分为两部分:构造函数实例化提前暴露引用地址和给属性设置值是为了解决循环依赖的问题
调用postProcessAfterInitialization方法
检查bean是否实现了Destruction(销毁)相关接口
检查是否实现了相关Aware接口
BeanPostProcessors后置处理
检查XML文件中是否配置了自定义的destroy-method方法
初始化过程1.bean实现了InitializingBean接口,对应的方法为afterPropertiesSet2.在bean定义的时候,通过init-method设置的方法
检查XML配置文件中是否有自定的init-method方法
调用destroy方法
调用bean的构造函数
BeanNameAware接口的 setBeanName() 方法BeanClassLoaderAware 接口的 setBeanClassLoader() 方法BeanFactoryAware 接口的 setBeanFactory() 方法ApplicationContextAware 接口的 set...() 方法。(ApplicationContext使用)
检查bean是否实现了DisposableBean接口
BeanPostProcessors前置处理
BeanFactoryPostProcessor是在spring容器加载了bean的定义文件之后,在bean实例化之前执行的。接口方法的入参是ConfigurrableListableBeanFactory,使用该参数,可以获取到BeanDefinition 对元数据信息进行修改
BeanFactoryPostProcessor
给bean设置属性
调用postProcessBeforeInitialization方法
实例化Bean对象
解析XML为BeanDefinition
检查bean是否实现了InitializingBean接口,调用对应的方法为afterPropertiesSet
0 条评论
回复 删除
下一页