BeanFactory与ApplicationContext 区别
2009-12-02 14:18
316 查看
org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,
IoC容器负责容纳此前所描述的bean,并对bean进行管理。
在Spring中,
BeanFactory是IoC容器的核心接口。 它的职责包括:实例化、定位、配置
应用程序中的对象及建立这些对象间的依赖。
Spring为我们提供了许多易用的
BeanFactory实现,
XmlBeanFactory就是最常用的一个。
该实现将以XML方式描述组成应用的对象 以
及对象间的依赖关系。
XmlBeanFactory类将获取此XML配 置元数据,并用它来构建一个完
全可配置的系统或应用。
BeanFactory 提供的高级配置机制,使得管理各种对象成为可能。
ApplicationContext
是
BeanFactory的扩展,功能得到了进一步增强,比如更易 与Spring AOP集成、资源处理
(国际化处理)、事件传递及各种不同应用层的context实现 (如针对web应用的
WebApplicationContext)。
简而言之,
BeanFactory提供了配制框架及基本功能,而
ApplicationContext则增加了
更多支持企业核心内容的功能。
ApplicationContext完全由
BeanFactory扩展而来,
因而
BeanFactory所具备的能力和行为也适用于
ApplicationContext。
使用
getBean(String)方法就可以取得bean的实例;
BeanFactory提供的方法极其简单。
BeanFactory接口提供 了非常多的方法,但是对于我们的应用来说,最好永远不要调用它们,当然也包括 使用
getBean(String)方法,这样可以避免我们对 Spring API的依赖。
BeanFactory 同时也不具备 编译spring配置文件的功能 在容器初始化时 如果applicationContext出现错误时
BeanFactory并不能及时察觉,必须等待第一次获取bean的实例时才能抛出异常
比如实例化 BeanFactory
Resource res = new FileSystemResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(res);
Resource resClasspath = new ClassPathResource("applicationContext.xml.xml");
BeanFactory factory2 = new XmlBeanFactory(resClasspath);
获得BeanFactory实例时 不能检查错误
User u=(User)u.getBean("user");
当获得对象实例时 方可抛出异常
而实例化ApplicationContext
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
就能直接抛出异常
相关文章推荐
- BeanFactory和ApplicationContext的区别
- Spring 中 ApplicationContext 和 BeanFactory 的区别
- BeanFactoryPostProcessor和BeanPostProcessor的区别
- 【3】BeanFactory 和AppliactionContext区别
- Spring之BeanFactory与ApplicationConText区别
- (15)FactoryBean和BeanFactory的区别
- BeanFactory和ApplicationContext的区别
- Spring中的beanFactory和applicationContext的联系和区别
- BeanFactory 和 ApplicationContext的区别
- BeanFactory 与 FactoryBean的区别及FactoryBean详解
- Spring中BeanFactory、ApplicationContext区别
- spring FactoryBean 和 BeanFactory 的区别
- SqlSessionFactoryBuilder 与 SqlSessionFactoryBean的区别
- Spring中ApplicationContext和beanfactory区别
- Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法
- Spring中的beanFactory和applicationContext的联系和区别
- spring中的BeanFactory与ApplicationContext的作用和区别?
- Spring中ApplicationContext和beanfactory区别---解析一
- java面试题:spring中的BeanFactory与ApplicationContext的作用和区别?
- BeanFactory和FactoryBean的区别?