spring全部流程
2022-11-20 21:57:46 0 举报
spring全系流程图
作者其他创作
大纲/内容
registerBeanDefinitions解析标签元素且完成注册功能
是
applicationContext
3、开始进入容器的创建和刷新环节refreshol()
2、设置配置文件路径到当前应用程序中
不同的标签不同的处理类,具体的处理逻辑可能不同,但是最终都会获取到完成的beanDefinition对象
spring 全体系图解
createBeanFactory):DefaultListableBeanFactory
ConfigurationClassPostProcessor
2、obtainFreshBeanFactory创建容器,并且完成配置文件的加载
CommonAnnotationBeanPostProcessor
key:beanName
3、prepareBeanFactory给容器对象完成属性的赋值操作
4、postProcessBeanFactory默认没有实现,留给子类进行实现操作
BeanFactory
ExpressionResolverSPEL表达式的解析器
loadBeanDefinitions();加载配置文件
parseCustomElement使用额外的方式进行解析
PropertyEditor属性编辑器
将解析完成的BeanDefinition对象注册到容器的BeanDefinitionMap和BeanDefinitionNames集合中
根据当前标签的命名空间字符串去查找对应的handler处理类
可以自由扩展,修改beanFactory中的相关信息,但是使用最多的是对BeanDefinition的修改操作
beanPostProcessorsBPP集合
xml
parseBeanDefinitions解析beanDefinition
1、prepareRefresh()前戏,做容器刷新前的准备工作
调用构造方法a
ignoredDependencylnterfaces
doRegisterBeanDefinitions实际完成注册的操作
BeanDefinitionNames:存放beanDefinition的名称集合
bean定义信息
AspectJAwareAdvisorAutoProxyCreator
spring加载配置文件
否
一级缓存
PropertySourcePlaceHolderConfigurer
5、invokeBeanFactoryPostProcessor执行BFPP接口中的方法
是否是默认的标签bean
1、设置容器的启动时间2、设置活跃状态为true3、设置关闭状态为false4、获取Environment对象,并加载当前系统的属性值到Environment对象中5、准备监听器和事件的集合对象,默认为空的集合
创建容器对象
spring.handlers
此处会判断是否要完成某些内部bean的bd的加载
创建spring应用程序上下文
ApplicationContext context = new ClassPathXmIApplicationContext(\"applicationContext.xml\")
BeanDefinitionMap
BeanDefinitionReader
EventListenerMethodProcessor
doLoadDocument将配置文件解析成文档对象,方便通过父子节点的方式获取出对应的标签元素
XmlBeanDefinitionReader
doLoadBeanDefinitions实际干活的方法,完成配置文件的解析工作
parseDefaultElement使用默认方式进行解析
AutowiredAnnotationBeanPostProcessor
value:BeanDefinition
经过—系列的loadBeanDefinitions方法,最终为了完成当前配置文件的加载工作
完成Bean Definition的加载和解析工作
0 条评论
下一页
为你推荐
查看更多