前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每天一道面试题(18)

每天一道面试题(18)

作者头像
剑走天涯
发布2019-09-12 17:13:31
3420
发布2019-09-12 17:13:31
举报
文章被收录于专栏:Java LifeJava Life

01

请说明一下Spring中BeanFactory和ApplicationContext的区别是什么?

BeanFactory:

BeanFactory是spring中比较原始,比较古老的Factory。因为比较古老,所以BeanFactory无法支持spring插件,例如:AOP、Web应用等功能。

ApplicationContext :

ApplicationContext是BeanFactory的子类,因为古老的BeanFactory无法满足不断更新的spring的需求,于是ApplicationContext就基本上代替了BeanFactory的工作,以一种更面向框架的工作方式以及对上下文进行分层和实现继承,并在这个基础上对功能进行扩展:

(1)MessageSource, 提供国际化的消息访问 ;

(2)资源访问(如URL和文件) ;

(3)事件传递 ;

(4)Bean的自动装配 ;

(5)各种不同应用层的Context实现。

区别:

(1)如果使用ApplicationContext,如果配置的bean是singleton,那么不管你有没有或想不想用它,它都会被实例化。好处是可以预先加载,坏处是浪费内存。

(2)BeanFactory,当使用BeanFactory实例化对象时,配置的bean不会马上被实例化,而是等到你使用该bean的时候(getBean)才会被实例化。好处是节约内存,坏处是速度比较慢。多用于移动设备的开发。

(3)没有特殊要求的情况下,应该使用ApplicationContext完成。因为BeanFactory能完成的事情,ApplicationContext都能完成,并且提供了更多接近现在开发的功能。

02

写在后面

本文章将以“指导面试,智取Offer”为宗旨,为广大Java开发求职者扫清面试道路上的障碍,成为面试官眼中的精英,朋友圈里的大神。在面试场上“胸有成竹”,坦然面对每个面试官的“拷问”,做到进可攻“项目经理、项目总监”等高级职务,视之为翘首可及;退可守“Java工程师、Java测试工程师”等职务,视之为探囊取物。无论进退、皆可立于不败之地。

The end

文字 / 々仗剑走天涯

配图 / 々仗剑走天涯

排版 / 々仗剑走天涯

Java Life

与你同在
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java Life 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档