Spring 框架的设计理念与设计模式分析
2010-06-14 00:00:00 来源:WEB开发网核心提示: 这个方法实现了 AbstractApplicationContext 的抽象方法 refreshBeanFactory,这段代码清楚的说明了 BeanFactory 的创建过程,Spring 框架的设计理念与设计模式分析(9),注意 BeanFactory 对象的类型的变化,前面介绍了他有很多子
这个方法实现了 AbstractApplicationContext 的抽象方法 refreshBeanFactory,这段代码清楚的说明了 BeanFactory 的创建过程。注意 BeanFactory 对象的类型的变化,前面介绍了他有很多子类,在什么情况下使用不同的子类这非常关键。BeanFactory 的原始对象是 DefaultListableBeanFactory,这个非常关键,因为他设计到后面对这个对象的多种操作,下面看一下这个类的继承层次类图:
图 10. DefaultListableBeanFactory 类继承关系图
查看原图(大图)
从这个图中发现除了 BeanFactory 相关的类外,还发现了与 Bean 的 register 相关。这在 refreshBeanFactory 方法中有一行 loadBeanDefinitions(beanFactory) 将找到答案,这个方法将开始加载、解析 Bean 的定义,也就是把用户定义的数据结构转化为 Ioc 容器中的特定数据结构。
这个过程可以用下面时序图解释:
图 11. 创建 BeanFactory 时序图
查看原图(大图)
Bean 的解析和登记流程时序图如下:
图 12. 解析和登记 Bean 对象时序图
[]
赞助商链接