概述
这次了解一下ApplicationContext的继承关系。尽管这样学习一次后不可能记住所有的类,但是对ApplicationContext有了一定的轮廓,不再是两眼一抹黑。
常用的ApplicationContext
- SpringBoot中常用的两个ApplicationContext,主要有以下两个:
- 常规应用:org.springframework.context.annotation.AnnotationConfigApplicationContext;
- Web应用:org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext
- 常用的ApplicationContext的主要功能
- 包括消息解析、bean工厂的基本功能(bean的注册、实例化、初始化)、context中事件的发布、资源加载与解析、上下文配置、bean销毁等主要功能;
继承关系
各个类的作用
- public interface EnvironmentCapable {……}
- 作用:所有Spring应用程序上下文都是EnvironmentCapable,该接口主要用于在接受BeanFactory实例的框架方法中执行{@code instanceof}检查,这些实例可能实际上也可能不是ApplicationContext实例,以便在环境可用时与环境进行交互。
- 方法
- Environment getEnvironment();
- public interface MessageSource {……}
- 作用:用于解析消息的策略接口,支持此类消息的参数化和国际化。
- 方法
- String getMessage(String code, Object[] args, String defaultMessage, Locale locale);
- String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException;
- String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException;
- public interface ApplicationEventPublisher {……}
- 作用:封装事件发布功能的接口。 用作{@link ApplicationContext}的超级接口。
- 方法
- void publishEvent(ApplicationEvent event);
- void publishEvent(Object event);
- public interface ResourcePatternResolver extends ResourceLoader {……}
- 作用
- 用于将位置模式(例如,Ant样式路径模式)解析为Resource对象的策略接口。
- 这是{@link
- 作用