BeanFactory和ApplicationContext有什么区别?
BeanFactory和ApplicationContext有什么区别?
- BeanFactory和ApplicationContext有什么区别?
BeanFactory和ApplicationContext有什么区别?
BeanFactory (轻量级) 和ApplicationContext(高级特性和框架)是Spring的两大核心接口,都可以当做Spring的容器。
(1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。ApplicationContext接口作为BeanFactory的子类,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能:
(2)
- BeanFactroy采用的是延迟加载形式来注入Bean的,只有在使用到某个Bean时(调用getBean())
,才对该Bean进行加载实例化。这样,我们就不能提前发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。 - ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。
- ApplicationContext启动后预载入所有的单实例Bean,所以在运行的时候速度比较快,因为它们已经创建好了。相对于BeanFactory,ApplicationContext
唯一的不足是占用内存空间,当应用程序配置Bean较多时,程序启动较慢。
(3)BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。
(4)BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式创建,如使用ContextLoader。
我的Github地址,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。
| \ | 开源项目名称 | 依赖类型 | 版本号 | 描述 |
|---|---|---|---|---|
| 1 | spring-boot-starter-trie | pom | 1.0.0-SNAPSHOT | 特定需求下查询速度远超开源检索工具,innodb下B+树或者ES中倒排索引无法与之比拟. |
| 2 | spring-boot-starter-trie | jar | 1.0.0-M1 | 提供了基于SpringCloud的服务节点,可以通过Nacos注册中心进行服务发现,实现了树的动态扩容与缩容,以及服务的动态上下线。 |
| 3 | Data-Provider | pom | 1.0.0-SNAPSHOT | 提供了多种数据源的查询,以及数据的类型同步,作为一个Jar可以依赖在其他服务上动态的提供数据。 |
相关文章:
BeanFactory和ApplicationContext有什么区别?
BeanFactory和ApplicationContext有什么区别? BeanFactory和ApplicationContext有什么区别? BeanFactory和ApplicationContext有什么区别? BeanFactory (轻量级) 和ApplicationContext(高级特性和框架)是Spring的两大核心接口,都…...
js的BOM对象中的window、location使用
说明:BOM的全称是Browser Object Model,浏览器对象模型,有Window(浏览器窗口)、Navigator(浏览器)、Screen(屏幕)、History(历史记录)和Location&…...
DAY 68 redis高可用的主从复制、哨兵、cluster集群
Redis 高可用 什么是高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服…...
leetcode 1209 学会删除字符串
删除字符串的经典kotlin操作: val mTemp (temp.text).replace(Regex("℃"),"") 以下是题目! 1209. 删除字符串中的所有相邻重复项 II 提示 中等 174 相关企业 给你一个字符串 s,「k 倍重复项删除操作」将会从 s…...
JavaScript6
一、概念 ES6是JavaScript语言的标准。 新特性:let和const命令、变量的解构赋值、字符串函数对象数组等扩展。 环境准备:需要安装NodeJs。 二、新特性 1、let let命令用来声明变量。他的用法类似var,但所声明的变量,只在let命令…...
轻松安装Redis:不用担心配置问题
一、Centos安装Redis 1.安装 EPEL 源 Redis 不在 CentOS 官方仓库中,需要安装 EPEL 源才能访问到 Redis 软件包。运行以下命令安装 EPEL 源: sudo yum install epel-release 2.安装 Redis 使用以下命令安装 Redis: sudo yum install re…...
ChatGPT学习研究总结
目录 ChatGPT研究总结 一、程序接入用途不大 二、思考:如何构建一个类似ChatGPT的自定义模型 一些ChatGPT研究学习资料(来源网络) (1)一文读懂ChatGPT模型原理 (2)MATLAB科研图像处理——…...
SpringBoot枚举入参实战
文章目录 前言一、什么是枚举?二、枚举的优点三、枚举的缺点四、使用步骤1.代码实现1.1.枚举1.2.实体1.3.控制层 2.Postman测试2.1.Get请求2.1.1.枚举参数2.1.2.对象枚举属性参数 2.2.Post请求2.2.1.枚举参数2.2.2.对象枚举属性参数 2.3.Put请求2.3.1.枚举参数2.3.2…...
Ansible介绍
文章目录 Ansible介绍Ansible的架构为什么要有Ansible TowerAnsible Tower Ansible介绍 Ansible是一种自动化工具,可以用于自动化部署、配置和管理IT基础设施。它是一种基于Python的开源软件,提供了一个简单易用的语言和工具集,使得自动化管…...
GPT-4的免费使用方法分享
目录 方法1:使用Ora.sh的LLM应用 方法2:使用https://steamship.com 方法3:使用https://nat.dev 方法4:http://tdchat.vip 方法5:使用Poe网站或App 方法6:使用 Opencat App 方法7:使用https://Huggin…...
一个产品的诞生
一个产品的诞生 一个产品的诞生通常需要经历多个阶段,包括市场调研、产品设计、原型制作、测试和生产等。在市场调研阶段,公司会了解消费者的需求和市场趋势,以确定产品的定位和特点。在产品设计阶段,设计师会根据市场调研结果和…...
MQTT与传统的HTTP协议对比,优势在哪里呢?
HTTP是应用最为广泛和流行的协议。但是MQTT在过去的几年里迅速取得了进展。在讨论物联网开发的时候,开发者必须在这两者之间作出选择。 MQTT集中于数据,而HTTP集中于文档。HTTP是一个用于客户端-服务器计算的请求-响应协议,它并非总是为移动设…...
热榜!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能
最近很多粉丝朋友私信我说:熬过了去年的寒冬却没熬过现在的内卷;打开Boss直拒一排已读不回,回的基本都是外包,薪资还给的不高,对技术水平要求也远超从前;感觉Java一个初中级岗位有上千人同时竞争࿰…...
【小程序】封装时间选择组件:用单元格van-cell和插槽slot,包括起始时间和终止时间
效果 可以选择起始时间和终止时间,并显示。 时间选择器放在van-cell的value插槽中。 用的库: https://vant-contrib.gitee.io/vant-weapp/#/home https://dayjs.fenxianglu.cn/category/ 用的组件:Cell单元格、DatetimePicker时间选择、Pop…...
华为OD机试真题B卷 Java 实现【猜密码】
一、题目描述 小杨申请了一个保密柜,但是他忘记了密码。只记得密码都是数字,而且所有数字都是不重复的。 请你根据他记住的数字范围和密码的最小数字数量,帮他算下有哪些可能的组合,规则如下: 输出的组合都是从可选的数字范围中选取的,且不能重复;输出的密码数字要按照…...
沉淀-MYSQL
MYSQL学习 数据库操作 创建数据库 create database db_name; 删除数据库 drop database db_name; 选择/使用数据库 use db_name; 使用mysqladmin在终端执行 创建数据库 mysqladmin -u root -p create db_name Enter password:*** 删除数据库 mysqladmin -u root -p drop db…...
OJ练习第116题——二进制矩阵中的最短路径(BFS)
二进制矩阵中的最短路径 力扣链接:1091. 二进制矩阵中的最短路径 题目描述 给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。 二进制矩阵中的 畅通路径 是一条从 左上角 单元格&am…...
2023上半年软件设计师真题评析
2023年上半年软设是2018年改版后的一次考试,以下内容根据考完回忆结合网上暂时流传的真题(不保证完全正确)整理,主要侧重相关知识点罗列,少讲或不讲具体的答案,主要给自己的计算机基础查漏补缺,同时也希望对大家有帮助…...
(汇编) 基于VS的x86汇编基础指令
文章目录 环境汇编基础标志位常用指令 vs配置END 环境 visual studio 选择x86运行 示例代码 /** | 32位 | 16位 | 高8位 | 低8位 | | ---- | ---- | ----- | ----- | | EAX | AX | AH | AL |*/ #include <iostream>int main() {int32_t x 1;int32_t y 2;//…...
算法Day16 | 104.二叉树的最大深度,559.n叉树的最大深度, 111.二叉树的最小深度,222.完全二叉树的节点个数
Day16 104.二叉树的最大深度559.n叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数 104.二叉树的最大深度 题目链接: 104.二叉树的最大深度 深度和高度相反。 高度,自然是从下向上数:叶子节点是第一层,往上数&#x…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
