BeanFactory和ApplicationContext有什么区别?

news/2024/11/25 4:50:14/

BeanFactory和ApplicationContext有什么区别?

  • BeanFactory和ApplicationContext有什么区别?




BeanFactory和ApplicationContext有什么区别?

BeanFactory (轻量级) 和ApplicationContext(高级特性和框架)是Spring的两大核心接口,都可以当做Spring的容器。
(1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。ApplicationContext接口作为BeanFactory的子类,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能:
(2)

  1. BeanFactroy采用的是延迟加载形式来注入Bean的,只有在使用到某个Bean时(调用getBean())
    ,才对该Bean进行加载实例化。这样,我们就不能提前发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。
  2. ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。
  3. ApplicationContext启动后预载入所有的单实例Bean,所以在运行的时候速度比较快,因为它们已经创建好了。相对于BeanFactory,ApplicationContext
    唯一的不足是占用内存空间,当应用程序配置Bean较多时,程序启动较慢。
    (3)BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。
    (4)BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式创建,如使用ContextLoader。






我的Github地址,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。

\开源项目名称依赖类型版本号描述
1spring-boot-starter-triepom1.0.0-SNAPSHOT特定需求下查询速度远超开源检索工具,innodb下B+树或者ES中倒排索引无法与之比拟.
2spring-boot-starter-triejar1.0.0-M1提供了基于SpringCloud的服务节点,可以通过Nacos注册中心进行服务发现,实现了树的动态扩容与缩容,以及服务的动态上下线。
3Data-Providerpom1.0.0-SNAPSHOT提供了多种数据源的查询,以及数据的类型同步,作为一个Jar可以依赖在其他服务上动态的提供数据。

http://www.ppmy.cn/news/85482.html

相关文章

vue3组合式笔记

dfdf {{count}} {{state.count}} {{computedValue}} // // 校验 submit 事件 // submit: ({ email, password }) > { // if (email && password) { // return true // } else { // console.warn(‘Invalid submit event payload!’) // return false // } // } // }…

Linux: ARM32各CPU模式下栈配置

文章目录 1. 前言2. 背景3. ARM32 中断向量表 和 中断处理流程3.1 ARM32 中断向量表3.2 ARM32 中断处理流程 4. ARM32 各CPU模式下的栈配置4.1 SVC模式下各CPU栈配置(内核栈配置)4.1.1 BOOT CPU SVC模式栈配置(内核栈配置)4.1.2 非 BOOT CPU SVC模式栈配置(内核栈配置) 4.2 中断…

贪心算法问题实验:贪心算法解决TSP问题

目录 前言实验内容实验流程实验过程算法分析伪代码代码实现分析算法复杂度用例测试 总结 前言 TSP问题是指旅行商问题,即给定一组城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。它是组合优化中的一个NP困难问题&#xff0…

什么是客户自助服务门户及其搭建方法

随着信息技术的快速发展,越来越多的企业开始转向以客户为中心的服务模式,而客户自助服务门户(Customer Self-Service Portal)则成为了重要的服务方式。它可以让客户在不需要人工干预的情况下,自行解决问题,…

浅谈注册中心Eureka、Nacos

一、分布式架构理论CAP理论 一致性(Consistency) (所有节点在同一时间具有相同的数据) 可用性(Availability) (保证每个请求不管成功或者失败都有响应) 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作) 二、Eurka注册中心 1、Eurka 采用 …

03-JSON-JSON数据和Java对象的相互转换(jackson解析器、注解、list、map)

一、JSON数据转换Java对象 在 Java 中,将 JSON 数据转换为 Java 对象,Jackson 作为一个优秀的 JSON 处理库,提供了方便的 API 来实现这个需求。具体来说,需要使用 ObjectMapper 类提供的 readValue() 方法,该方法提供…

day6 广播及实现

什么是广播 数据包发送方式只有一个接受方,称为单播 如果同时发给局域网中的所有主机,称为广播 只有用户数据报(使用UDP协议)套接字才能广播 广播地址: 一个网络内主机号全为1的IP地址为广播地址 发到该地址的数据包被所有的主机接收 255…

c++(内存管理)

本节目标: 1、c/c内存分布 2、c语言中动态内存管理方式 3、c中动态内存管理 4、operator new 与 operator delete函数 5、new和delete的实现原理 6、定位new表达式(placement - new) 7、常见面试题 目录 1.c/c内存分布 2、c语言中动…