我们知道BeanFactory接口是给spring框架用的,而ApplicationContext接口才是给我们开发者使用的。所以ApplicationContext接口提供了很多我们日常开发时所需要的功能。我们下面看一下ApplicationContext接口主要都包括哪些功能。
让IOC容器拥有了发布应用上下文事件的功能。主要可以监听容器的启动事件、关闭事件等。
为应用提供了i18n国际化消息访问的功能。
ApplicationContext接口实现了ResourcePatternResolver的功能,可以使ApplicationContext接口的子类通过类似Ant风格的方式装载spring的配置文件。
ApplicationContext接口两个最主要的实现类为ClassPathXmlApplicationContext和FileSystemXmlApplicationContext这两个实现类的使用,已经在其它文章中介绍过了,这里就不在做详细说明了。
BeanFactory接口在初始化IOC容器时,,并不会实例化对象,而是当第一次调用某一个对象时,才会实例化具体的对象。而ApplicationContext接口在初始化IOC容器时,则会将所有单实例的对象直接初始化。这也是这两个接口的主要区别之一。正是因为如此,所以ApplicationContext接口的初始化时间要比BeanFactory接口的初始化时间要长。