关于Spring Bean 实例的注册流程:
1.定义好Spring的配置文件。
2.通过Resource对象将Spring配置文件进行抽象,抽象成一个具体的Resource对象(如ClassPathResource)
3.定义好要使用Bean工程(各种BeanFactory).
4.定义好XmlBeanDefinitionReader对象,并将工厂对象作为参数传递进去,从而构建好二者间的关联关系。
5.通过XmlBeanDefinitionReader对象读取之前所抽象出来的Resource对象。
6.流程开始进行解析
7.针对XML文件进行各种元素以及元素属性的解析,这里面,真正的解析是通过BeanDefinitionParserDelegate对象来完成(使用委托模式)
8.通过BeanDefinitionParserDelegate对象在解析XML文件时,又使用了模板方法(pre,process,post)
9.当所有bean标签都解析完毕后,开始定义一个BeanDefinition对象,该对象是一个非常重要的对象,里面容纳了一个bean相关的所有属性
10.BeanDefinition对象创建完毕之后,Spring又会创建一个BeanDefinitionHolder对象来持有这个BeanDefinition对象。
11.BeanDefinitionHolder对象主要包含:beanName 和BeanDefinition.
12.工厂会把解析出来的bean信息存放到内部的一个ConcurrentHashMap中,key:beanName(唯一),value:BeanDefinition对象创建完毕之后,Spring又会创建一个BeanDefinition对象
13.调用Bean解析完毕的触发动作,从而触发相应的监听器的方法的执行(使用观察者模式)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100722.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...