zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

Spring 什么 区别 说明 一下 ApplicationContext BeanFactory
2023-09-14 09:01:57 时间

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

BeanFactory:

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

AppliactionContext:

是BeanFactory的子类,基本上代替了BeanFactory的工作。以一种更面向框架的工作方式以及对上下文进行分层和实现继承,并在这个基础上对功能进行扩展:

①MessageSource,提供国际化的消息访问。

②资源访问:URL和文件等。

③事件传递。

④Bean的自动装配。

⑤各种不同的应用层的Context实现。

区别:

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

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

③没有特殊要求的情况下,应该使用ApplicationContext完成。因为BeanFactory能完成的事情,ApplicationContext都能完成,并且提供了更加丰富的功能