1,ApplicatonContext 是一个高级形态意义的IOC容器 接口关系如下图:
ApplicatonContext较BeanFactory具备的新特性:
1),支持不同的信息源,扩展了MessageSource接口,这些信息源的扩展功能可以支持国际化的实现,为开发多语言版本的应用提供服务。
2),访问资源。体现在对ResourceLoader和Resource的支持上,这样可以从不同地方得到bean的定义资源,具体ApplicationContext都是继承了DefaultResourceLoader的子类。
3),支持应用事件。继承了接口ApplicationEventPublisher。从而再上下文中引入了事件机制。这些事件和bean的生命周期的结合为Bean的管理提供了便利
4),提供了更多的附加服务
2,设计原理 代码如下:
public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver { String getId(); String getApplicationName(); String getDisplayName(); long getStartupDate(); ApplicationContext getParent(); AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException; }