BeanFactory
和 ApplicationContext
是 Spring 框架中两个重要的容器接口,它们之间有以下区别:
BeanFactory
是 Spring 框架的基础接口,提供了最基本的 IOC 容器功能。它的主要作用是管理和提供应用程序中的 Bean 实例,通过管理 Bean 的生命周期,实现依赖注入和控制反转等功能。ApplicationContext
是 BeanFactory 的子接口,具有更多的扩展和增强共嗯那个。ApplicationContext 除了具备 BeanFactory 的功能外,还提供了国际化、资源管理、事件发布和处理、AOP 和事务管理等高级功能。BeanFactory
是懒加载的,只有当需要获取 Bean 时才会进行实例化和初始化。ApplicationContext
在容器启动时就会进行实例化和初始化,提前创建和管理所有的 Bean 实例。BeanFactory
可以通过编程的方式进行配置,手动创建容器并根据需要注册和配置 Bean。ApplicationContext
可以通过多种方式进行配置,包括 XML 配置文件、Java 注解和 JavaConfig 等方式,更加灵活和方便。在 Spring 的启动过程中,使用 ApplicationContext 比 BeanFactory 更加常见。通常,Spring Boot 会使用 ApplicationContext 进行应用程序的启动和管理。在启动过程中,Spring Boot 会通过扫描注解和加载配置文件等方式,创建 ApplicationContext 实例,并且进行初始化和自动配置。一旦 ApplicationContext 初始化完成,Spring Boot 会使用它来管理和协调应用程序中的各个组件,并提供相关的功能和服务。
会用到。尽管 Spring Boot 主要使用 ApplicationContext 进行应用程序的启动和管理,但它仍然内部使用 BeanFactory 来支持其核心功能。
在 Spring Boot 的启动过程中,会创建一个根据类路径和配置文件自动配置的 ApplicationContext 实例。这个 ApplicationContext 实例实际上是一个 BeanFactory 的实现,并且拥有 BeanFactory 的功能。在创建 ApplicationContext 实例时,Spring Boot 会将必要的配置文件加载到 BeanFactory 中,并根据这些配置来创建和管理 Bean 实例。
整理完毕,完结撒花~