【Spring源码】Spring流程

1、初始化AnnotationBeanDefinitionReader

2、初始化ClassPathBeanDefinitionScanner

3、执行register(),注册配置类

4、执行refresh(),先初始化比如BeanFactory这类基础的容器

5、执行invokeBeanFactoryPostProcessors(),主要扫描包和parse (类—>beanDefinition)

6、注册beanPostProcessor,国际化等等

7、将BD变成bean的方法 finishBeanFactoryInitialization(),实例化非延迟的单例

8、首先getBeanDefinition之前,都要合并bd

9、getSingleton第一次——单例池中是否存在单例,并且判断是否在“正在创建bean的set集合”中

10、getSingleton第二次

11、BPP1——是否需要代理bean,代理则直接返回

12、BPP2——推断构造函数

13、BPP3——缓存注入元素的信息

14、BPP4——生产代理工厂,作用是解决循环依赖

15、调用populateBean 主要作用,注入属性

16、BPP5——控制是否需要属性注入

17、再注入缓存的属性之前,先通过 自动注入模型

18、BPP6——注解的属性填充 @Autowired @Resource

19、BPP7——各种aware接口 + 生命周期回调 执行@PostConstruct

20、执行 实现InitializingBean接口的,重写方法,和 xml 中的 init-method="xxx"方法

21、BPP8——aop代理

BD:BeanDefinition

BPP:BeanPostProcessor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值