BeanFactory:
是Spring里面最底层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能
ApplicationContext:
应用上下文,继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能;
1: 国际化(MessageSource)
2: 访问资源,如URL和文件(ResourceLoader)
3: 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层
4: 消息发送、响应机制(ApplicationEventPublisher)
5: AOP(拦截器)
ApplicationContext 的初始化和BeanFactory 有一个重大的区别:
BeanFactory在初始化容器时,并未实例化Bean,直到第一次访问某个Bean 时才实例目标Bean,懒加载;
而ApplicationContext 则在初始化应用上下文时就实例化所有单实例的Bean