先上类图:
BeanFactory是Spring IoC的核心接口,BeanFactory相关的类设计可以看做是Spring的核心骨骼,为整个框架设计了一个基本的核心架构。但只有骨骼,没有血肉,也是不完整的,这样一个核心的骨架难以在实际开发中应用,毕竟在实际企业开发中,还涉及到许多额外的功能,例如:资源加载,消息源处理,事件机制,生命周期管理等等。这些非业务的,公用的又必不可少的功能,不可能由开发者每次去开发,因此Spring提供了ApplicationContext体系。它扩展了BeanFactory,并且提供了实际开发应用中需要的一系列高级特性,主要包括:
- 支持不同的消息源,ApplicationContext扩展了MessageSource,使Spring得以处理国际化信息,为开发多语言版本的应用提供服务。
- 访问资源。 这个特性体现在对是ResourceLoader和ResourcePatternResolver的支持上,这样我们可以从不同的地方得到定义Bean的资源。这样,可以灵活的定义bean定义信息,例如从不通的IO途径或者网络资源来得到Beans定义信息
- 支持应用事件,获得事件响应功能。ApplicationEventPublisher拥有发布事件功能,为Spring引入事件机制。
- 生命周期管理(Lifecycle),运行环境设置(EnvironmentCapable)
Applica