BeanFactory和ApplicationContext是Spring的两大核心接口,用来当作spring的容器
什么是BeanFactory
- BeanFactory是Spring框架的最底层接口,是Spring框架的基础设施,里面包含了各种对于Bean的定义,读取Bean的配置文档,管理Bean的加载、实例化,控制Bean的生命周期,维护Bean之间的依赖关系。
-
什么是ApplicationContext
- ApplicationContext是BeanFactory的子接口,具有BeanFactory的基本功能。除此之外,ApplicationContext还提供了其他框架功能:继承了MessageSource(支持国际化),资源文件访问,可以同时加载多个配置文件,可以通过监听器来管理bean的生命周期
-
BeanFactory和ApplicationContext的区别
- BeanFactory只提供了ioc的基本功能而ApplicationContext在此之上还提供了继承MessageSource(支持国际化),资源文件访问,可以同时加载多个配置文件,可以通过监听器来管理bean的生命周期
- BeanFactory采用延迟加载来注入Bean,只有在使用到某个Bean的时候才进行加载实例化。这样不能提前发现一些存在的spring配置错误。ApplicationContext则是在容器启动时一次性创建所有的Bean,这样就可以在容器时就发现spring的配置错误。