BeanFactory
最基本的接口,提供著名的getBean
Resource resource = new ClassPathResource("applicationContext.xml"); //装载配置文件
BeanFactory factory = new XmlBeanFactory(resource);
父子容器机制
HierarchicalBeanFactory接口是管理双亲IoC容器规范,比如说getParentBeanFactory()这样的方法。每个子容器都有自己的父容器,getbean的时候优先到自己的父容器中寻找。父容器不能使用子容器的bean.而子容器能够使用父容器的bean.最著名的实例是
ApplicationContext parent = new ClassPathXmlApplicationContext("parent.xml");
ApplicationContext dataSourceContext = new ClassPathXmlApplicationContext(new String[]{"datasource.xml"}, parent);
最著名的实现是SpringMVC容器和spring根容器之间的关系
ApplicationContext
XmlBeanFactory现在已经是过期代码了,现在推荐使用ClassPathXmlApplicationContext。ApplicationContext接口继承了BeanFactory接口。
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext即应用上下文,它是建立在BeanFactory基础之上的,看下边的体系结构就可以发现。在ApplicationContext中提供了更多面向应用的功能
ApplicationContext新增了如下功能:
- 默认初始化所有的Singleton,也可以通过配置取消预初始化。
- 事件机制