关于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解析完毕的触发动作,从而触发相应的监听器的方法的执行(使用观察者模式)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100722.html原文链接:https://javaforall.cn