spring加载bean过程(IOC过程)
1.载入xml配置文件,通过xml文件构造BeanDefinition的Map(在DefaultListableBeanFactory中)
2.实例化BeanFactoryPostProcessors类型的bean、调用postProcessBeanFactory方法修改BeanDefinition定义
3.实例化BeanPostProcessor类型的bean
4.实例化Singletons类型的bean(getBean方法)
1)调用构造方法实例化bean(如果是FactoryBean,则实例化ProxyFactoryBean类型的bean)
2)初始化属性(可能引起getBean的递归调用)
3)若实现Aware接口,调用接口方法
4)调用BeanPostProcessor的postProcessBeforeIniti和alization方法
5)若实现InitializingBean接口,调用接口afterPropertiesSet方法、调用init方法
1.载入xml配置文件,通过xml文件构造BeanDefinition的Map(在DefaultListableBeanFactory中)
2.实例化BeanFactoryPostProcessors类型的bean、调用postProcessBeanFactory方法修改BeanDefinition定义
3.实例化BeanPostProcessor类型的bean
4.实例化Singletons类型的bean(getBean方法)
1)调用构造方法实例化bean(如果是FactoryBean,则实例化ProxyFactoryBean类型的bean)
2)初始化属性(可能引起getBean的递归调用)
3)若实现Aware接口,调用接口方法
4)调用BeanPostProcessor的postProcessBeforeIniti和alization方法
5)若实现InitializingBean接口,调用接口afterPropertiesSet方法、调用init方法
6)调用BeanPostProcessor的postProcessAfterInitialization方法