spring ioc容器创建与bean初始化源码解析总结

1. Spring容器在启动的时候,会保存所有注册进来的Bean的定义信息;

1.1 xml注册bean;

1.2 注解注册Bean;@Service、@Component、@Bean、xxx

 

2. Spring容器会在合适的时机创建这些Bean

2.1 用到这个bean的时候,如要先用到后置处理器这些Bean的时候,利用getBean创建bean;创建好以后保存在容器中;

2.2 统一创建剩下所有的bean的时候;finishBeanFactoryInitialization();

 

2.3 对象创建的时候,有一个核心的思想:后置处理器BeanPostProcessor

2.3.1 每一个bean创建完成,都会使用各种后置处理器进行处理;来增强bean的功能;

AutowiredAnnotationBeanPostProcessor:处理自动注入

AnnotationAwareAspectJAutoProxyCreator:来做AOP功能;

 

为Bean增强功能的注解:

AsyncAnnotationBeanPostProcessor

ScheduledAnnotationBeanPostProcessor

 

2.4 事件驱动模型;

ApplicationListener;事件监听;

ApplicationEventMulticaster;事件派发:

你可能感兴趣的:(spring,ioc)