BeanFactory和ApplicationContext之间的区别?

时间:2014-02-24 11:05:16

标签: spring ioc-container

两者实际上都是ioc容器。但它们之间的实际差异是什么?哪一个更好用?

2 个答案:

答案 0 :(得分:3)

ApplicationContext派生自BeanFactory,以提供在Web应用程序中工作的附加功能。

只需编写

即可实例化弹簧容器
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

ApplicationContext context = new ClassPathXmlApplicationContext{"spring_dao.xml","spring_service.xml};

您可以根据项目要求使用一个或多个xml文件。因为我在这里使用两个xml文件,即一个用于dao类的服务类的配置细节。这里ClassPathXmlApplicationContext是ApplicationContext的子代。

为了更好地了解差异,您可以查看http://docs.spring.io/spring/docs/2.5.x/reference/beans.html#context-introduction-ctx-vs-beanfactory网站。

在BeanFactory和ApplicationContext之间进行选择也取决于您希望如何加载bean。

除非您需要节省资源,否则首选ApplicationContext,例如在移动应用程序上。

答案 1 :(得分:1)

BeanFactory和Application都用于管理bean的生命周期,ApplicationContext可以完成BeanFactory与AOP,Event等一起做的所有事情。

除非资源至关重要,否则请转到ApplicationContext。