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 实例。
整理完毕,完结撒花~ 🌻
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Spring(12) BeanFactory 和 ApplicationContext 区别
目录 一、BeanFactory 和 ApplicationContext 区别?二、既然 Spring Boot 中使用的是 ApplicationContext 进行应用程序的启动和管理,那么 Spring Boot 会用到 BeanFactory 吗? 一、BeanFactory 和 ApplicationContext 区别? Bea…...
![](https://img-blog.csdnimg.cn/c25d74c781a7482c9a2375844d92e094.png)
git的日常使用
加入忽略列表:在.gitignore中加入忽略的文件,build/ 表示build文件夹下,*.jar 表示以jar结尾的,用换行符隔开将另一个分支合并到当前分支:git merge xxx冲突出现,可以看看这里:详解Git合并冲突—…...
![](https://img-blog.csdnimg.cn/d23a99e755da4b61a25aeb81f8f6fe10.png)
【Spring Boot】请求参数传json对象,后端采用(pojo)CRUD案例(102)
请求参数传json对象,后端采用(pojo)接收的前提条件: 1.pom.xml文件加入坐标依赖:jackson-databind 2.Spring Boot 的启动类加注解:EnableWebMvc 3.Spring Boot 的Controller接受参数采用:Reque…...
![](https://img-blog.csdnimg.cn/13ed975fb57248efb1e2ea75654dceae.png)
layui之layer弹出层的icon数字及效果展示
layer的icon样式 icon如果在信息提示弹出层值(type为0)可以传入0-6,icon与图标对应关系如下: 如果是加载层(type为3)可以传入0-2,icon与图标对应关系如下:...
![](https://img-blog.csdnimg.cn/9e6d0cd3e50c4670a3a8c09a68173c56.png)
Python selenium对应的浏览器chromedriver版本不一致
1、chrome和chromedriver版本不一致导致的,我们只需要升级下chromedriver的版本即可 浏览器版本查看 //打开google浏览器直接访问,查看浏览器版本 chrome://version/ 查看chromedriver的版本 //查看驱动版本 chromedriver chromedriver下载 可看到浏…...
![](https://img-blog.csdnimg.cn/2b518f6a22f24aecab1cca6da5c95d91.png)
Redis的安装方法与基本操作
目录 前言 一、REDIS概述 二、REDIS安装 1、编译安装 2.yum安装 三、Redis的目录结构 四、基础命令解析 五、在一台服务器上启动多个redis 六、数据库的基本操作 (一)登录数据库 (二)基础命令 七、Redis持久化 (一&…...
![](https://img-blog.csdnimg.cn/4af311ad70854cb8b38750dcbeb65629.png)
选读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…...
![](https://www.ngui.cc/images/no-images.jpg)
JAVA细节/小技巧
一、 Callable类可以实现返回结果的多线程。实现Callable类,然后实例化一个对象传递给FutureTask,然后把FutureTask对象传递给Thread对象,执行start即可开始多线程。FutureTask对象执行get函数可以获得Callable类中call函数的返回值…...
![](https://img-blog.csdnimg.cn/img_convert/b55abb1e474e032a801f5079c02d6c14.png)
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…...
![](https://www.ngui.cc/images/no-images.jpg)
一个月学通Python(三十三):Python并发编程在爬虫中的应用
专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…...
![](https://img-blog.csdnimg.cn/1162b148dd1a4a36811e5a1bfa955bd6.png)
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的…...
![](https://img-blog.csdnimg.cn/bd78c648e2d3442587e8924913be1431.png)
【数据结构】“单链表”的练习题
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
![](https://img-blog.csdnimg.cn/896fb422c4a045fabda5b6093387269f.png)
项目实战 — 消息队列(5){统一硬盘操作}
前面已经使用数据库管理了交换机、绑定、队列,然后又使用了数据文件管理了消息。 那么,这里就创建一个类,讲之前的两个部分整合起来,对上层提供统一的一套接口,表示硬盘上存储的所有的类的信息。 /* * 用这个类来管理…...
![](https://img-blog.csdnimg.cn/13b9528ef63642f99c6eb70643315ad1.png)
【2.2】Java微服务:Hystrix的详解与使用
目录 分布式系统面临问题 Hystrix概念 Hystrix作用 降级 什么是降级 order服务导入Hystrix依赖(简单判断原则:谁调用远程谁加) 启动类添加注解 业务方法添加注解(冒号里填回调方法名,回调方法返回兜底数据&…...
![](https://www.ngui.cc/images/no-images.jpg)
【PYTHON】WebSocket服务端与客户端通信实现
目录 1 简介 2 WebSocket优点 3 前后端交互的方式 4 心跳机制和重连机制 5 后端代码 6 测试...
![](https://www.ngui.cc/images/no-images.jpg)
Runloop 的五种mode
1.runloop是一个事件驱动的循环,收到事件就去处理,没有事件就进入睡眠. 2.应用一启动主线程被创建后,主线程对应的runloop也被创建,runloop也保证了程序能够一直运行.之后创建的子线程默认是没有runloop的,只有当调用[NSRunLoop currentRunLoop]去获取的时候才被创建. 3.runloo…...
![](https://www.ngui.cc/images/no-images.jpg)
C++头文件使用精要
一、头文件包含顺序 根据《Google C 编程风格指南》,对于Foo.cpp,顺序推荐为: Foo.hC标准库C标准库其它库的头文件本工程的头文件 另外,在包含头文件时应该加上头文件所在工程的文件夹名,可区分重名文件。即假如你有…...
![](https://www.ngui.cc/images/no-images.jpg)
Flink之SideOutput(数据分流)
Flink在早期版本有一个split算子用来做数据分流使用的,但是在flink-1.12开始这个API就已经被删除了,在1.12版本以后我们是通过process算子来做数据分流的,这里就介绍一下如何使用prodess进行数据分流. 代码 import org.apache.flink.api.common.typeinfo.TypeInformation; im…...
![](https://img-blog.csdnimg.cn/b0d31364b7e740d9a61a1ad3866084c2.png)
Android Studio新版本logcat过滤说明
按包名过滤 //输入package:(输入一个p就会有提示的) ,后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考&#…...
![](https://www.ngui.cc/images/no-images.jpg)
carsim与matlab仿真
matlab2021a安装教程,亲测。 百度网盘: matlab2021a安装包 提取码:1223 CarSim2020安装教程, 亲测。 百度网盘: CarSim2020安装包 提取码:1223 ,破解可参考 b站视频...
![](https://www.ngui.cc/images/no-images.jpg)
rust里如何快速实现一个LRU 本地缓存?
LRU是Least Recently Used(最近最少使用)的缩写,是一种常见的缓存淘汰算法。LRU算法的基本思想是,当缓存空间已满时,优先淘汰最近最少使用的数据,以保留最常用的数据。 在计算机系统中,LRU算法…...
![](https://img-blog.csdnimg.cn/40ab896baebe454b9b3522b9ae19f0dd.png)
MQTT 订阅接收消息 mosquitto 方式
1 说明 采用 mosquitto 库,实现订阅主题,并接收消息。其中服务器有做限制,需要对应的 cilent id ,cafile 、certfile 、keyfile 等配置2 环境 采用ubuntu 直接编译调试 安装mosquitto 库 sudo apt install libmosquitto-dev su…...
![](https://img-blog.csdnimg.cn/f7007382116746d4b6674b2dca4b2163.png)
以mod_jk方式整合apache与tomcat(动静分离)
前言: 为什么要整合apache和tomcat apache对静态页面的处理能力强,而tomcat对静态页面的处理不如apache,整合后有以下好处 提升对静态文件的处理性能 利用 Web 服务器来做负载均衡以及容错 更完善地去升级应用程序 jk整合方式介绍&#…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot动态数据源切换
1)、就是将多个数据源全部注入到bean中,根据需要实现多数据源之间的切换。 2)、使用baomidou的DS注解。见文章DS注解实现数据源动态切换 com.baomidou dynamic-datasource-spring-boot-starter 3.5.1 ##设置默认的数据源或者数据源组,默认值…...
![](https://www.ngui.cc/images/no-images.jpg)
代码随想录训练营day14
101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 func isSymmetric(root *TreeNode) bool {if root nil{ return true}return judge(root.Left,root.Right) }func judge(lf *TreeNode , ri *TreeNode)bool{if lf nil && ri nil{ retu…...
![](https://www.ngui.cc/images/no-images.jpg)
功能测试进阶自动化测试如何摸清学习方向,少走弯路呢?
目录 抛开疑问,只做学术探讨 小白在想什么? 盖楼之前先打好地基,首先需要学习一门语言 语言入门后,正式踏上开始自动化成神之路,入门篇Selenium 玩腻了Selenium 开始接触自动化框架unittest/testNG 不满足于单元…...
![](https://www.ngui.cc/images/no-images.jpg)
检测前端是否可以ping通后端返回的ip地址
检测前端是否可以ping通后端返回的ip地址 前端检测是否可ping通ip地址(PC端)前端检测是否可ping通ip地址(uniapp小程序端) 前端检测是否可ping通ip地址(PC端) // 前端检测是否可ping通ip地址 ping…...
![](https://img-blog.csdnimg.cn/77ae16fe4e9e4537b4c9772996bf5b6b.jpeg)
SMART司马他法则(目标管理)
S代表具体(Specific),指绩效考核要切中特定的工作指标,不能笼统; M代表可度量(Measurable),指绩效指标是数量化或者行为化的,验证这些绩效指标的数据或者信息是可以获得的; A代表可实现(Attainable)&…...
![](https://img-blog.csdnimg.cn/8af39143eaca471da142a9949367272d.png)
【LeetCode】删除并获得点数
删除并获得点数 题目描述算法分析编程代码空间优化 链接: 删除并获得点数 题目描述 算法分析 编程代码 class Solution { public:int deleteAndEarn(vector<int>& nums) {const int N 10001;int arr[N] {0};for(const auto& n : nums){arr[n]n;}vector<in…...
![](https://img-blog.csdnimg.cn/53a1c524cc7c42baaa6b443d5b0a8fd2.png)
SciencePub学术 | 传感器类重点SCIE征稿中
SciencePub学术 刊源推荐: 传感器类重点SCIE征稿中!信息如下,录满为止: 一、期刊概况: 传感器类重点SCIE 【期刊简介】IF:2.0-2.5,JCR3区,中科院4区; 【版面类型】正刊࿱…...
![](/images/no-images.jpg)
wordpress段间距/肇庆百度快速排名
GCC的安装: 切换到安装光盘目录下: #mount /dev/cdrom /mnt/cdrom #cd /mnt/cdrom 安装GCC依赖的*rpm程序,必须按照顺序依次执行: #rpm -ivh kernel-headers-2.6.18-164.el5.i386.rpm #rpm -ivh compat-glibc-headers-2.3.4-2…...
![](https://img-blog.csdnimg.cn/img_convert/cad12faf98a5094a3fdc5cdc5a58398c.png)
搜索引擎网站录入/蓝牙耳机网络营销推广方案
家长们常常有这样的疑问,孩子开始换新牙了,可是新牙怎么长得这么丑?本来长得好好的乳牙,换牙后,门牙变得又黄又大,中间还分开好大一条缝!这需不需要做矫正?◆其实孩子们正在经历他们…...
![](/images/no-images.jpg)
做网站seo/网站优化方案模板
title: mysql5.7与mysql8.0关于with rollup order by处理上的区别date: 2019-10-23 16:39:09tags:需求:常规问题,group by之后根据指定字段进行排序,如下根据c字段排序。eg:select a,b,count(*) from tb_1 group by a,b with roll…...
![](/images/no-images.jpg)
河南外贸网站制作/推广app平台有哪些
开发 Qt for Python 应用程序会遇到很多不同的文件类型:ui, qrc, qml, pyproject 等。下面分别简单介绍一下它们。 Python文件 .py 在开发 Qt for Python 项目时,Python 文件是你最常遇见的文件格式。 值得注意的是,你可以抛开 .ui, .qrc,…...
![](/images/no-images.jpg)
建设导航网站费用/网页设计html代码大全
Perl命令行应用介绍Perl语言中有很多Perl命令行参数.通过它们,我们有机会写出更简单的程序,在这篇文章里我们来了解一些常用的参数。第一部分:SafetyNetOptions安全网参数在使用Perl尝试一些聪明(或stupid)的想法时,错误难免会发生.有经验的Perl程序员常…...
![](/images/no-images.jpg)
网站是先解析还是先备案/国外新闻最新消息
微型计算机工作过程微机原理与接口技术 西安邮电大学计算机学院 王忠民 第一章 微型计算机系统导论(第二讲) 微型计算机硬件系统 1 2 微型计算机软件系统 微型计算机的工作过程 3 本讲主要内容 第一章 微型计算机系统导论—微型计算机硬件系统 硬件 微型机系统 外围设备 过程控…...