springIOC加载过程
IOC加载过程
1、创建bean工厂
2、实例化reader,注册spring内部的BeanFactory后置处理器的BeanDefiniton
这些后置处理器有:
ConfigurationClassPostProcessor,解析配置类
还有一些解析@Autowide,@Resources等注解的BeanFactory后置处理器
3、注册配置类的BeanDefinition
4、invokeBeanFactoryPostProcessors,这个方法会先实例化bean定义map中的BeanFactoryPostProcessors后置处理器,并且使用其中的ConfigurationClassPostProcessor后置处理器解析我们的配置类,解析配置类上的@ComponentScan,@Import,注册所有扫描到的bean
5、注册BeanPostProcessors,Bean的后置处理器
6、执行第一个bean的后置处理器(在这里解析了所有的advisor)
7、实例化bean
8、属性赋值
9、初始化bean
3个Aware,@PostConstruct,实现 InitializedBean,init-method
10、进行aop处理
11、将bean实例加入一级缓存map中