SpringBeanContainer的启动加载初始化流程
2019-08-08 本文已影响2人
7e86aaa7b08a
1. DESC
Spring对beanFactory的处理
2. CODE

3. 从上往下RUSH
3.1 prepareRefresh()

3.2 obtainFreshBeanFactory()
加载NameSpacehandler
使用各个NameSpcaceHandler生成Beandifinitions并注册到beanfactory里面去
3.2.1 加载NameSpaceHandler
NameSpaceHandler加载过程的解析已经写过就不再写了; 参看前面的文章
3.2.2 NameSpaceHandler处理生成bean的定义(注意只是生成beanDefinition而不是生成具体的bean而且相关的Class文件也没有加载)
NamespaceHandlerSupport

1 ComponentScanBeanDefinitionParser 这是个样板例子,一看就知道怎么回事

3.3 prepareBeanFactory(beanFactory)
主要是完成BeanFactoryPostProcessors的初始化

3.4 invokeBeanFactoryPostProcessors(beanFactory) 执行BeanFactoryPostProcessors,
对BeanFactory启动处理流程

某vip视频:现在免费分享 具体看图下方文字

3.5 后面的几个方法感觉不用写了
就是bean的初始化什么的了;
其实想抓下Transactional的实现代码的;(这个有点不太明白和JVM redifineClass是怎么对活动栈帧进行方法栈的替换)
但我对AspectJ实在不熟,先放弃吧.等我点了ApsectJ的科技树再回来补充;
4. 总结整体流程







