javascript
关于Spring Bean实例注册的流程
1、定義好Spring的配置文件;
2、通過Resource對象將Spring配置文件進行抽象,抽象成一個具體的Resource對象(如ClassPathResource);
3、定義好將要使用的Bean工廠(各種BeanFactory);
4、定義好XmlBeanDefinitionReader對象,并將工廠對象作為參數(shù)傳遞進去,從而構(gòu)建好二者之間的關(guān)聯(lián)關(guān)系;
5、通過XmlBeanDefinitionReader對象讀取之前所抽取出的Resource對象;
6、流程開始進行解析;
7、針對Xml文件進行各種元素以及元素屬性的解析,這里面,真正的解析是通過BeanDefinitionParserDelegate對象來完成的(委托模式);
8、通過BeanDefinitionParserDelegate對象在解析XML文件時,又使用到了模板方法設計模式(pre,process,posr);
9、當所有的bean標簽元素都解析完畢后,開始定義一個BeanDefinition對象,該對象是一個非常重要的對象,里面容納了一個Bean相關(guān)的所有屬性;
10、BeanDefinition對象創(chuàng)建完畢后,Spring又會創(chuàng)建一個BeanDefinitionHolder對象來持有這個BeanDefinition對象;
11、BeanDefinitionHolder對象主要包含兩部分內(nèi)容:beanName和BeanDefinition;
12、工廠會將解析出來的Bean信息存放到內(nèi)部的一個ConcurrentHashMap中,該Map對象的鍵是beanName,值是BeanDefinition對象;
13、調(diào)用Bean解析完畢的觸發(fā)動作,從而觸發(fā)相應的監(jiān)聽器的方法的執(zhí)行(觀察者模式)。
?
?
總結(jié)
以上是生活随笔為你收集整理的关于Spring Bean实例注册的流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring对于Bean管理的核心组件
- 下一篇: Spring 的创建流程