Java

SpringBeanContainer的启动加载初始化流程

2019-08-08  本文已影响2人  7e86aaa7b08a

1. DESC

Spring对beanFactory的处理

2. CODE

@南街老头 V:腰酒八爱五个①七肆

3. 从上往下RUSH

3.1 prepareRefresh()

@南街老头 V:腰酒八爱五个①七肆

3.2 obtainFreshBeanFactory()

加载NameSpacehandler

使用各个NameSpcaceHandler生成Beandifinitions并注册到beanfactory里面去

3.2.1 加载NameSpaceHandler

NameSpaceHandler加载过程的解析已经写过就不再写了; 参看前面的文章

3.2.2 NameSpaceHandler处理生成bean的定义(注意只是生成beanDefinition而不是生成具体的bean而且相关的Class文件也没有加载)

NamespaceHandlerSupport

@南街老头 V:腰酒八爱五个①七肆  

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

@南街老头 V:腰酒八爱五个①七肆

3.3 prepareBeanFactory(beanFactory)

主要是完成BeanFactoryPostProcessors的初始化

@南街老头 V:腰酒八爱五个①七肆  

3.4 invokeBeanFactoryPostProcessors(beanFactory) 执行BeanFactoryPostProcessors,

对BeanFactory启动处理流程

@南街老头 V:腰酒八爱五个①七肆

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

jvm  全套看图下方文字:

3.5 后面的几个方法感觉不用写了

就是bean的初始化什么的了;

其实想抓下Transactional的实现代码的;(这个有点不太明白和JVM redifineClass是怎么对活动栈帧进行方法栈的替换)

但我对AspectJ实在不熟,先放弃吧.等我点了ApsectJ的科技树再回来补充;

4. 总结整体流程

Redis全套 SpringCloud 全部100多G  免 费免费免费
上一篇 下一篇

猜你喜欢

热点阅读