ioc 容器 (3)
2017-07-31 本文已影响0人
bigseaken
XmlBeanFactory 在Spring 3.1开始已经过时, 因为这个类是Rod Johnson在2001的时候写的,作为一个最初始的ioc的基本实现的类,安装目前快发的速度来讲,程序要的事情还是很多的,而且它的这么点特性根本满足不了日益增长的需要,实际开发过程中,这个类也很少用,用的最多的是applicationContext,spring上下文对象,它是ioc容器的最高层体现。从一开始的xmlBeanFactory分析的流程,在分析一次applicationContext的初始化过程,bean的注册,以及如何注入到指定的资源。ClassPathXmlApplicationContext是applicationContext的一个实现,就从这里开始。
重点在与refresh方法,他将整一个ioc容器的初始化过程都包涵了。
在xmlBeanFactory初始化时一开始的时候时从解析xml 然后封装bean信息 最后到注册。在ClassPathXmlApplicationContext将这一过程直接叫做obtainFreshBeanFactory方法,直接交给AbstractRefreshableApplicationContextl来做。
保证容器的唯一性,如果beanFactory存在的话先在其关闭,然后在创建。创建beanFactory时没有设置双亲容器的时候 直接new 一个DefaultListableBeanFactory,接着就是熟悉的loadBeanDefinitions
把xml解析的任务交给了XmlBeanDefinitionReader ,最后你会发现跟xmlBeanFactory解析封装bean信息是一样的方法。spring的良好的设计就体现在这里。