Spring 官方文档
介绍
ApplicationContext用于为应用程序提供配置的中央接口。这在应用程序运行时是只读的,但如果实现支持,则可以重新加载
ApplicationContext提供了如下功能:
- Bean工厂方法,用于访问应用程序组件 继承自ListableBeanFactory。
- 以通用方式加载文件资源的能力。继承自ResourceLoader接口。
- 将事件发布到已注册的侦听器的功能。继承自ApplicationEventPublisher接口。
- 解决消息,支持国际化的能力。继承自MessageSource接口。
- 从父上下文继承。后代上下文中的定义始终优先。这意味着,例如,整个Web应用程序可以使用单个父上下文,而每个servlet都有自己的子上下文,该上下文独立于任何其他servlet的子上下文。
- 除了标准的BeanFactory 生命周期的能力,ApplicationContext实现检测和调用 ApplicationContextAware beans以及ResourceLoaderAware, ApplicationEventPublisherAware和MessageSourceAware beans
该org.springframework.context.ApplicationContext接口代表Spring IoC容器,负责实例化,配置和组装bean。容器通过读取配置元数据获取有关要实例化,配置和组装的对象的指令。配置元数据以XML,Java注释或Java代码表示。它允许您表达组成应用程序的对象以及这些对象之间丰富的相互依赖性。
源码
package org.springframework.context;
import org.springframework.beans.factory.HierarchicalBeanFactory;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.core.env.EnvironmentCapable;
import org.springframework.core.io.support.ResourcePatternResolver;
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
String getId();
String getApplicationName();
String getDisplayName();
long getStartupDate();
ApplicationContext getParent();
AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;
}