一.ApplicationContext不是最顶级的IOC容器
IOC容器都是ApplicationContext接收ClassPathXmlApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationcontext("applicationContext.xml");
BeanFactory才是IOC容器最顶级的接口,但是Application功能更强大

二.ListableBeanFactory

三.EnvironmentCapable
获取Environment类型的域
四.MessageSource
用于解析消息的策略接口,支持此类消息的参数化和国际化
五.ApplicationEventPublisher
- 策略接口。用于将位置模式(Ant样式的路径模式)解析为Resource对象
- 这是ResourceLoader接口的扩展。可以检查传入的ResourceLoader是否也实现了此扩展接口
六.ConfigurableApplicationContext
- 他是一种SPI接口,将大多数ApplicationContext子类实现。除了ApplicationContext接口中的应用程序上下文客户端方法外,提供了用于配置ApplicationContext功能
- 配置和生命周期方法封装在这里,避免代码显式暴露给ApplicationContext客户端代码
七.AbstractApplicationContext
- ApplicationContext接口抽象实现。不强制配置存储类型,简单实现通用上下文功能。这个嘞使用模板方法模式,需要具体的子类实现抽象方法
- 与普通BeanFactory相比,ApplicationContext应该检测其内部bean工厂中定义的特殊bean
- 此类自动注册在上下文中定义bean的BeanFactoryPostProcessors,BeanPostProcessors和ApplicationListeners

九.AnnotationConfigApplicationContext

总结:
- SpringFramework原生的IOC容器的特点:分层次,可列举,可配置
- SpringBoot在SpringFrameWork原生的IOC容器做了扩展,都是基于注解的扩展