Spring中BeanFactory和ApplicationContext的区别是什么?

文章图片
BeanFactory:BeanFactory是spring中比较原始 , 比较古老的Factory 。 因为比较古老 , 所以BeanFactory无法支持spring插件 , 例如:AOP、Web应用等功能 。
ApplicationContextApplicationContext是BeanFactory的子类 , 因为古老的BeanFactory无法满足不断更新的spring的需求 , 于是ApplicationContext就基本上代替了BeanFactory的工作 , 以一种更面向框架的工作方式以及对上下文进行分层和实现继承 , 并在这个基础上对功能进行扩展:
<1>MessageSource,提供国际化的消息访问
<2>资源访问(如URL和文件)
<3>事件传递
<4>Bean的自动装配
<5>各种不同应用层的Context实现
区别:
<1>如果使用ApplicationContext , 如果配置的bean是singleton , 那么不管你有没有或想不想用它 , 它都会被实例化 。 好处是可以预先加载 , 坏处是浪费内存 。
<2>BeanFactory , 当使用BeanFactory实例化对象时 , 配置的bean不会马上被实例化 , 而是等到你使用该bean的时候(getBean)才会被实例化 。 好处是节约内存 , 坏处是速度比较慢 。 多用于移动设备的开发 。
【Spring中BeanFactory和ApplicationContext的区别是什么?】<3>没有特殊要求的情况下 , 应该使用ApplicationContext完成 。 因为BeanFactory能完成的事情 , ApplicationContext都能完成 , 并且提供了更多接近现在开发的功能 。

文章图片
推荐阅读
- 百亿富豪遇“麻烦”,相中老牌百货,举牌后遭警示,恐添变数?
- 美国用“核试验”来恫吓中国“核裁军”,那是赤裸裸的核讹诈
- 颠覆未来战场?美军成功测试新武器,但中国早用来砍树了
- 中韩季中杯A组巡礼,综合数据T1和FPX更好,大概率会携手小组出线
- “神童”将加入NBA发展联盟?未来的中国男篮,强敌恐不止日本!
- 加利亚尼:我心中有一大遗憾,那就是2016年没签下泽林斯基
- 中美关系直击要点!外交部长王毅记者会核心内容精炼 提及中美关系、病毒源头、香港事务等问题
- 疫情想借疫情敲诈中国是白日做梦!王毅这些话掷地有声
- 短版上衣是时尚穿搭中绝对不可少的一部分,10种造型让你充满魅力
- 岂有此理,6000华人宣誓加入美国,扬言中国无权取消他们国籍
