Spring 之 IoC概述

news2024/11/27 4:33:19

目录

1. IoC概述

1.1 控制反转

1.2 依赖注入

2. IoC容器在Spring中的实现

2.1 BeanFactory

2.2 ApplicationContext

2.2.1 ApplicationContext的主要实现类


1. IoC概述

全称:Inversion of Control,译为 “控制反转”

Spring通过IoC容器来管理所有Java对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由IoC容器管理的Java对象称为Spring Bean,它与使用关键字new 创建的Java对象没有任何区别。

1.1 控制反转

  • 控制反转是一种思想
  • 控制反转是为了降低程序耦合度,提高程序扩展力
  • 控制反转,反转的是什么?
    (1)将对象的创建权交出去,交给第三方容器(IoC)负责
    (2)将对象和对象之间关系的维护权交出去,交给第三方容器(IoC)负责

1.2 依赖注入

它实现了控制反转的思想。指Spring创建对象的过程中,将对象依赖属性通过配置进行注入。

依赖注入常见的俩种实现方式:

  • set注入
  • 构造注入

结论:IOC就是一种控制反转的思想,而DI是对IOC的一种具体实现。

2. IoC容器在Spring中的实现

Spring 的 IoC 容器就是 IoC思想的一个落地的产品实现。IoC容器中管理的组件也叫做 bean。在创建 bean 之前,首先需要创建IoC 容器。Spring 提供了IoC 容器的两种实现方式:

2.1 BeanFactory

这是 IoC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 本身,不提供给开发人员使用。

2.2 ApplicationContext

BeanFactory 的子接口,提供了更多高级特性。面向 Spring 的使用者,几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。

2.2.1 ApplicationContext的主要实现类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1582318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DM8】物化视图

物化视图 (MATERIALIZED VIEW) 是目标表在特定时间点上的一个副本,占用存储空间,即将查询出来的数据存储在数据库中。 当所依赖的一个或多个基表的数据发生更新,必须启用刷新机制才能保证数据是最新的。 物化视图可以用于数据复制&#xff08…

Unity 遮罩

编辑器版本 2017.2.3f1 学习Unity的三张遮罩方式 1. Mask 遮罩方式 首先,在界面上创建2个Image,一个命名Img_Mask,大小设置 400* 400, 一个命名Img_Show,大小设置500*500。 然后,给 Img_Mask添加Mask,选择Img_Mask,点击Add Com…

宁波宠物展|2024中国(宁波)国际宠物用品博览会

中国(宁波)国际宠物用品博览会 地点:宁波国际会展中心 时间:2024年11月14-16日 主办单位:凤麟展览(宁波)有限公司 协办单位:浙江省宠物产业协会 宁波市跨境电子商务协会 宁波欧德国际商务咨询服务有限公司 宁波扬扬会议展览有限公司 20000方展览…

获取.apk文件的MD5签名、包名、版本号工具

​​​​​​​https://download.csdn.net/download/Kern_/89112540https://download.csdn.net/download/Kern_/89112540 点击上方链接下载 ApkSignore.jar,按照一下教程使用; 前提要素: 需要电脑安装了jdk及配置了jdk环境变量 安装教程&…

ubuntu20.04.6安装sshd服务,并连接到远程服务器

文章目录 sshd 是 OpenSSH 服务器的守护进程OpenSSH下载在 Ubuntu 上,可以按照以下步骤来管理 sshd 服务 防火墙开启22端口使用Mobaxterm链接服务器 sshd 是 OpenSSH 服务器的守护进程 它负责提供远程登录和安全的 shell 服务。通过启动 sshd 服务,可以…

LangChain - Chain

文章目录 1、概览为什么我们需要链? 2、快速入门 (Get started) - Using LLMChain多个变量 使用字典输入在 LLMChain 中使用聊天模型: 3、异步 API4、不同的调用方法__call__调用仅返回输出键值 return_only_outputs只有一个输出键 run只有一个输入键 5、自定义cha…

Git分布式版本控制系统——Git常用命令(一)

一、获取Git仓库--在本地初始化仓库 执行步骤如下: 1.在任意目录下创建一个空目录(例如GitRepos)作为我们的本地仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 如果在当前目录中看到.git文件夹&#x…

第一届长城杯初赛部分wp(个人解题思路)

目录 Black web babyrsa2 APISIX-FLOW cloacked 本人不是很擅长ctf,这只是我自己做出的西部赛区部分题的思路,仅供参考 Black web 访问http://192.168.16.45:8000/uploads/1711779736.php 蚁剑连接 访问/var/www/html/u_c4nt_f1nd_flag.php babyr…

Java中利用BitMap位图实现海量级数据去重

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 前言 什么是BitMap?有什么用? 基本概念 位图的优势 …

谷歌seo自然搜索排名怎么提升快?

要想在谷歌上排名快速上升,关键在于运用GPC爬虫池跟高低搭配的外链组合 首先你要做的,就是让谷歌的蜘蛛频繁来你的网站,网站需要被谷歌蜘蛛频繁抓取和索引,那这时候GPC爬虫池就能派上用场了,GPC爬虫池能够帮你大幅度提…

清明美食制作|“心灵护航,增能培力”残疾人职业能力提升培养

为提高残疾人的动手能力,提升个人的自身素质和自主就业创业能力,弘扬中华民族传统文化,临近清明之际,淳安县从益舍社会工作服务中心于浪川乡展开了以“品尝春天味道 制作清明粿 清明美食制作”为主题的清明节活动。 【清明粿制作】…

图片水印生成

请完善 js/index.js 文件中的 TODO 部分&#xff0c;实现创建水印函数的功能 &#xff0c;创建的水印需要使用 <span> 标签展示。 createWatermark 函数参数说明 参数 说明 类型 text 文字内容 string color 颜色值 string deg 旋转角度 numbe…

多输入多输出 | Matlab实现XGboost多输入多输出预测

多输入多输出 | Matlab实现XGboost多输入多输出预测 目录 多输入多输出 | Matlab实现XGboost多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现XGboost多输入多输出预测 1.data为数据集&#xff0c;10个输入特征&#xff0c;3个输出变量…

祝贺云贝教育携手腾讯云,于3月30日成功护送考生通过TDSQL的专业认证考核

ZHENBIN MIN同学腾讯云TDSQL(MySQL版)交付运维高级工程师 TCP考试成绩、证书展示&#xff1a; SIHAO WU同学腾讯云TDSQL(MySQL版)交付运维高级工程师 TCP考试成绩、证书展示&#xff1a; 培训概述 数据库交付运维高级工程师-腾讯云TDSQL&#xff08;MySQL版&#xff09;培训&a…

【项目实战经验】DataKit迁移MySQL到openGauss(下)

上一篇我们分享了安装、设置、链接、启动等步骤&#xff0c;本篇我们将继续分享迁移、启动~ 目录 9. 离线迁移 9.1. 迁移插件安装 中断安装&#xff0c;比如 kill 掉java进程&#xff08;安装失败也要等待300s&#xff09; 下载安装包准备上传 缺少mysqlclient lib包 mysq…

3D GPR 切片图

之前写的代码&#xff0c;结果测试时发现绘图结果不对&#xff0c; 重新看&#xff0c;发现是数据处理方式不对。 切片绘图结果&#xff0c;只是图片增益设置还存在不足。

19 - 程序状态字

---- 整理自B站UP主 踌躇月光 的视频 1. ALU 扩充及 PSW 1.1 电路实现 1.2 测试电路 1.2.1 加法 1.2.2 减法 1.2.3 与 只观察灯的变化。 1.2.4 或 只观察灯的变化。 1.2.5 异或 只观察灯的变化。 1.2.6 非 只观察灯的变化。 2. 实验工程 【19 - 程序状态字】

深度解析SPARK的基本概念

关联阅读博客文章&#xff1a; 深入理解MapReduce&#xff1a;从Map到Reduce的工作原理解析 引言&#xff1a; 在当今大数据时代&#xff0c;数据处理和分析成为了企业发展的重要驱动力。Apache Spark作为一个快速、通用的大数据处理引擎&#xff0c;受到了广泛的关注和应用。…

TypeScript常用知识点整理

介绍 TypeScript 是 JavaScript 的一个超集&#xff0c;添加了静态类型支持和更多现代编程特性&#xff0c;提高了代码的可靠性和可维护性。最终会被编译成标准的 JavaScript 代码运行。 使用npm install -g typescript进行全局安装 将编写好的ts代码进行运行&#xff0c;第…

从零开始搭建后端信息管理系统(新手小白比如)

如果你是新手小白&#xff0c;首先我们要进行一些准备工作&#xff0c;安装一些基础软件&#xff0c; 备注一下&#xff1a;这里安装的vue环境的后台管理系统&#xff0c;不同的后台管理系统&#xff0c;需要安装不同的插件 准备工作&#xff1a; 安装 Visual Studio Code …