Spring(12) BeanFactory 和 ApplicationContext 区别
目录
- 一、BeanFactory 和 ApplicationContext 区别?
- 二、既然 Spring Boot 中使用的是 ApplicationContext 进行应用程序的启动和管理,那么 Spring Boot 会用到 BeanFactory 吗?
一、BeanFactory 和 ApplicationContext 区别?
BeanFactory 和 ApplicationContext 是 Spring 框架中两个重要的容器接口,它们之间有以下区别:
- 功能:
BeanFactory是 Spring 框架的基础接口,提供了最基本的 IOC 容器功能。它的主要作用是管理和提供应用程序中的 Bean 实例,通过管理 Bean 的生命周期,实现依赖注入和控制反转等功能。- 而
ApplicationContext是 BeanFactory 的子接口,具有更多的扩展和增强共嗯那个。ApplicationContext 除了具备 BeanFactory 的功能外,还提供了国际化、资源管理、事件发布和处理、AOP 和事务管理等高级功能。
- 初始化方式:
- 在 Spring 的启动过程中,
BeanFactory是懒加载的,只有当需要获取 Bean 时才会进行实例化和初始化。 - 而
ApplicationContext在容器启动时就会进行实例化和初始化,提前创建和管理所有的 Bean 实例。
- 在 Spring 的启动过程中,
- 配置方式:
BeanFactory可以通过编程的方式进行配置,手动创建容器并根据需要注册和配置 Bean。- 而
ApplicationContext可以通过多种方式进行配置,包括 XML 配置文件、Java 注解和 JavaConfig 等方式,更加灵活和方便。
在 Spring 的启动过程中,使用 ApplicationContext 比 BeanFactory 更加常见。通常,Spring Boot 会使用 ApplicationContext 进行应用程序的启动和管理。在启动过程中,Spring Boot 会通过扫描注解和加载配置文件等方式,创建 ApplicationContext 实例,并且进行初始化和自动配置。一旦 ApplicationContext 初始化完成,Spring Boot 会使用它来管理和协调应用程序中的各个组件,并提供相关的功能和服务。
二、既然 Spring Boot 中使用的是 ApplicationContext 进行应用程序的启动和管理,那么 Spring Boot 会用到 BeanFactory 吗?
会用到。尽管 Spring Boot 主要使用 ApplicationContext 进行应用程序的启动和管理,但它仍然内部使用 BeanFactory 来支持其核心功能。
在 Spring Boot 的启动过程中,会创建一个根据类路径和配置文件自动配置的 ApplicationContext 实例。这个 ApplicationContext 实例实际上是一个 BeanFactory 的实现,并且拥有 BeanFactory 的功能。在创建 ApplicationContext 实例时,Spring Boot 会将必要的配置文件加载到 BeanFactory 中,并根据这些配置来创建和管理 Bean 实例。
整理完毕,完结撒花~ 🌻
相关文章:
Spring(12) BeanFactory 和 ApplicationContext 区别
目录 一、BeanFactory 和 ApplicationContext 区别?二、既然 Spring Boot 中使用的是 ApplicationContext 进行应用程序的启动和管理,那么 Spring Boot 会用到 BeanFactory 吗? 一、BeanFactory 和 ApplicationContext 区别? Bea…...
git的日常使用
加入忽略列表:在.gitignore中加入忽略的文件,build/ 表示build文件夹下,*.jar 表示以jar结尾的,用换行符隔开将另一个分支合并到当前分支:git merge xxx冲突出现,可以看看这里:详解Git合并冲突—…...
【Spring Boot】请求参数传json对象,后端采用(pojo)CRUD案例(102)
请求参数传json对象,后端采用(pojo)接收的前提条件: 1.pom.xml文件加入坐标依赖:jackson-databind 2.Spring Boot 的启动类加注解:EnableWebMvc 3.Spring Boot 的Controller接受参数采用:Reque…...
layui之layer弹出层的icon数字及效果展示
layer的icon样式 icon如果在信息提示弹出层值(type为0)可以传入0-6,icon与图标对应关系如下: 如果是加载层(type为3)可以传入0-2,icon与图标对应关系如下:...
Python selenium对应的浏览器chromedriver版本不一致
1、chrome和chromedriver版本不一致导致的,我们只需要升级下chromedriver的版本即可 浏览器版本查看 //打开google浏览器直接访问,查看浏览器版本 chrome://version/ 查看chromedriver的版本 //查看驱动版本 chromedriver chromedriver下载 可看到浏…...
Redis的安装方法与基本操作
目录 前言 一、REDIS概述 二、REDIS安装 1、编译安装 2.yum安装 三、Redis的目录结构 四、基础命令解析 五、在一台服务器上启动多个redis 六、数据库的基本操作 (一)登录数据库 (二)基础命令 七、Redis持久化 (一&…...
选读SQL经典实例笔记20_Oracle语法示例
1. 计算一年有多少天 1.1. sql select Days in 2005: ||to_char(add_months(trunc(sysdate,y),12)-1,DDD)as reportfrom dualunion allselect Days in 2004: ||to_char(add_months(trunc(to_date(01-SEP-2004),y),12)-1,DDD)from dual REPORT ----------------- Days in 200…...
JAVA细节/小技巧
一、 Callable类可以实现返回结果的多线程。实现Callable类,然后实例化一个对象传递给FutureTask,然后把FutureTask对象传递给Thread对象,执行start即可开始多线程。FutureTask对象执行get函数可以获得Callable类中call函数的返回值…...
jmeter如何压测和存储
一、存储过程准备: 1、建立一个空表: 1 CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程: 1 2 3 4 5 6 7 8 9 CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN --E…...
一个月学通Python(三十三):Python并发编程在爬虫中的应用
专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…...
HCIP——STP
STP 一、STP概述二、二层环路带来的问题1、广播风暴问题2、MAC地址漂移问题3、多帧复制 三、802.1D生成树STP的BPDU1、配置BPDU2、RPC3、COST4、配置BPDU的工作过程5、TCN BPDU6、TCN BPDU的工作原理 四、STP的角色五、STP角色选举六、STP的接口状态七、接口状态的迁移八、STP的…...
【数据结构】“单链表”的练习题
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
项目实战 — 消息队列(5){统一硬盘操作}
前面已经使用数据库管理了交换机、绑定、队列,然后又使用了数据文件管理了消息。 那么,这里就创建一个类,讲之前的两个部分整合起来,对上层提供统一的一套接口,表示硬盘上存储的所有的类的信息。 /* * 用这个类来管理…...
【2.2】Java微服务:Hystrix的详解与使用
目录 分布式系统面临问题 Hystrix概念 Hystrix作用 降级 什么是降级 order服务导入Hystrix依赖(简单判断原则:谁调用远程谁加) 启动类添加注解 业务方法添加注解(冒号里填回调方法名,回调方法返回兜底数据&…...
【PYTHON】WebSocket服务端与客户端通信实现
目录 1 简介 2 WebSocket优点 3 前后端交互的方式 4 心跳机制和重连机制 5 后端代码 6 测试...
Runloop 的五种mode
1.runloop是一个事件驱动的循环,收到事件就去处理,没有事件就进入睡眠. 2.应用一启动主线程被创建后,主线程对应的runloop也被创建,runloop也保证了程序能够一直运行.之后创建的子线程默认是没有runloop的,只有当调用[NSRunLoop currentRunLoop]去获取的时候才被创建. 3.runloo…...
C++头文件使用精要
一、头文件包含顺序 根据《Google C 编程风格指南》,对于Foo.cpp,顺序推荐为: Foo.hC标准库C标准库其它库的头文件本工程的头文件 另外,在包含头文件时应该加上头文件所在工程的文件夹名,可区分重名文件。即假如你有…...
Flink之SideOutput(数据分流)
Flink在早期版本有一个split算子用来做数据分流使用的,但是在flink-1.12开始这个API就已经被删除了,在1.12版本以后我们是通过process算子来做数据分流的,这里就介绍一下如何使用prodess进行数据分流. 代码 import org.apache.flink.api.common.typeinfo.TypeInformation; im…...
Android Studio新版本logcat过滤说明
按包名过滤 //输入package:(输入一个p就会有提示的) ,后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考&#…...
carsim与matlab仿真
matlab2021a安装教程,亲测。 百度网盘: matlab2021a安装包 提取码:1223 CarSim2020安装教程, 亲测。 百度网盘: CarSim2020安装包 提取码:1223 ,破解可参考 b站视频...
别再傻傻用IO翻转了!用STM32的SPI+DMA驱动WS2812灯带,实测1920颗灯珠依然稳如老狗
STM32 SPIDMA驱动WS2812灯带:从时序优化到千级灯珠稳定控制实战 1. 为什么GPIO翻转方案在大型项目中频频翻车? 很多嵌入式开发者初次接触WS2812灯带时,都会尝试用GPIO翻转来实现控制——毕竟看起来只需要一根信号线,似乎用普通IO口…...
从SE到Dual-Attention:手把手教你为YOLOv8或ResNet模型‘加装’注意力模块提升指标
从SE到Dual-Attention:手把手教你为YOLOv8或ResNet模型‘加装’注意力模块提升指标 在计算机视觉领域,注意力机制已成为提升模型性能的"秘密武器"。不同于完全重构网络架构,注意力模块的魅力在于其即插即用的特性——就像为汽车加装…...
CE修改器进阶:通过内存结构分析,破解‘敌我同源’的游戏逻辑(以浮点数血量为例)
CE修改器进阶:内存结构分析与游戏逻辑破解实战 游戏修改器一直是技术爱好者探索虚拟世界底层逻辑的利器。在众多工具中,Cheat Engine(简称CE)以其强大的内存扫描和调试功能脱颖而出,成为逆向工程领域的瑞士军刀。今天&…...
linux PATH介绍
这句命令的作用是:把君正 X2600 的交叉编译器目录,临时加入 Linux 的命令搜索路径里。 你这句: export PATH/home/vik/project/x2600/tools/toolchains/mips-xburst2-gcc720-glibc238/bin:$PATH可以拆开理解。1. PATH 是啥? PATH …...
用51单片机和HC-SR04超声波模块,手把手教你做个倒车防撞提醒器(附完整代码和立创EDA原理图)
51单片机与超声波模块实战:打造高精度倒车防撞系统 引言 在智能交通与汽车电子领域,距离检测技术扮演着越来越重要的角色。对于电子爱好者而言,掌握超声波测距原理并实现实际应用,不仅能提升硬件开发能力,还能为日常生…...
开源项目Markdown Viewer:如何打造完美的浏览器Markdown阅读体验
开源项目Markdown Viewer:如何打造完美的浏览器Markdown阅读体验 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 作为一款功能强大的开源项目,Markdown Vi…...
Ollama 进阶:如何给本地大模型投喂你公司的测试文档?
——2026年企业级RAG知识库搭建全指南 写在前面:一个测试团队的真实痛点 上个月,一位测试团队负责人在交流群里发了这么一段话: “我们团队累积了大概3万+份测试用例、2000多份测试报告和无数迭代过程中留下的缺陷记录。每次新人入职,至少要花两周时间翻阅历史文档;每次…...
毕业设计作品精选【芳心科技】基于STM32的智能家庭快递柜
实物效果图:实现功能:本设计的基于STM32单片机的智能家庭快递柜,需要及进行硬件没计和软件开发。硬件方面,需要选择合适的矩阵键盘、显示器、LED灯、电动机等硬件没备,并设计相应的电路来连接各个模块。软件方面&#…...
本地化新闻查询为何总延迟超800ms?Perplexity边缘推理优化方案,实测响应压降至127ms,附Benchmark对比表
更多请点击: https://codechina.net 第一章:本地化新闻查询为何总延迟超800ms?Perplexity边缘推理优化方案,实测响应压降至127ms,附Benchmark对比表 本地化新闻查询高延迟的根本症结,在于传统云端大模型推…...
Langchain自定义LLM实战:我把一个简单的Python函数变成了AI模型接口
LangChain自定义LLM实战:从Python函数到智能接口的魔法变形记 在AI应用开发的世界里,大型语言模型(LLM)正以前所未有的速度改变着技术格局。但你是否想过,那些看似神秘的AI接口背后,其实隐藏着一个惊人的简单本质?今天…...
