栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java面试题BeanFactory,FactoryBean,ApplicationContext的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java面试题BeanFactory,FactoryBean,ApplicationContext的区别

BeanFactory,FactoryBean,ApplicationContext的区别

BeanFactory是个接口,是ioc最基本的容器,为其他具体的IOC容器提供了最基本的规范,像XmlBeanFactory,ApplicationContext 等具体的容器都是实现了BeanFactory,再在其基础之上附加了其他的功能。作用是负责生产和管理bean,不支持aop,web等spring插件

FactoryBean是一个接口,当在IOC容器中的Bean实现了FactoryBean后,通过getBean(String BeanName)获取到的Bean对象并不是FactoryBean的实现类对象,而是这个实现类中的getObject()方法返回的对象。要想获取FactoryBean的实现类,就要getBean(&BeanName),在BeanName之前加上&

ApplicationContext:

应用上下文,是BeanFactory的子接口,它是Spring的一各更高级的容器,提供了更完整的功能;

1) 支持国际化(继承MessageSource)

2) 访问资源,如URL和文件

3) 载入多个上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层  

4) 同时加载多个配置文件。

5) AOP(拦截器)

BeanFactory和FactoryBean区别:

BeanFactory是个Factory,也就是IOC容器或对象工厂,负责生产和管理Bean,提供一个Spring Ioc容器规范,。FactoryBean是个Bean,能生产或者修饰对象生成的工厂Bean,隐藏了实例化一些复杂Bean的细节,为IOC容器中Bean的实现提供了更加灵活的方式,它的实现与设计模式中的工厂模式和修饰器模式类似

BeanFactory和ApplicationContext的区别

BeanFactory采用延迟加载来注入bean,在启动的时候不会去实例化Bean,在使用到的时候容器才会去实例化,好处是节约内存,坏处是运行速度比较慢

ApplicationContext采用预加载的方式,在启动的时候就把所有的Bean全部实例化了,缺点是占用内存,当应用程序配置较多bean的时候,程序启动较慢

通常情况下使用ApplicationContext,因为BeanFactory能完成的事情,ApplicationContext都能完成,并且提供了更多的功能

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/423970.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号