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;
import org.springframework.lang.Nullable;
/**
* 提供一个应用配置的核心接口。当应用运行时为只读,但是如果实现支持,可以被重新加载。。。
*
* 一个ApplicationContext提供:
* (1)访问应用组件的bean工厂方法,继承自ListableBeanFactory接口
* (2)以通用方式加载资源文件的能力,继承自ResourceLoader接口
* (3)向已注册监听发布事件的能力,继承自ApplicationEventPublisher接口
* (4)处理消息,支持国际化的能力,继承自MessageSource接口
* (5)提供从父context继承的能力,子类中的bean定义优先级高
*
* 除了标准的BeanFactory生命周期功能处,ApplicationContext还实现检测和调用
* ApplicationContextAware、MessageSourceAware
* ResourceLoaderAware、ApplicationEventPublisherAware。
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
/**
* 返回当前上下文(ApplicationContext)的情一标识
*/
@Nullable
String getId();
/**
* 返回此上下文所属应用的名称
*/
String getApplicationName();
/**
* 返回此上下文的友好名称
*/
String getDisplayName();
/**
* 返回此上下文第一次加载的时间戳
*/
long getStartupDate();
/**
* 返回当前上下文的父上下文或者如果没有你上下文返回null
*/
@Nullable
ApplicationContext getParent();
/**
* 暴露AutowireCapableBeanFactory相关功能,通常不会在应用代码中使用,除非是 要将此上下文以外已初始化的bean实例规入则上下文管理时。
* 另外,ConfigurableApplicationContext接口暴露的内部BeanFactory也提供 AutowireCapableBeanFactory功能。
*/
AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;
}
spring源码-ApplicationContext
最新推荐文章于 2024-08-15 22:41:44 发布