①【Spring】一文了解IOC容器

news2024/11/19 3:29:41

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

一文掌握IOC

  • 一、IOC
  • 二、IOC容器的实现
    • BeanFactory 接口 :
    • ApplicationContext 接口 :



一、IOC

  • IOC:Inversion of Control,翻译过来是反转控制

  • DI:Dependency Injection,翻译过来是依赖注入

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

反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。




二、IOC容器的实现

Spring提供了实现IOC容器的两种方式:(两个接口)

  • BeanFactory
  • ApplicationContext

BeanFactory 接口 :

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


ApplicationContext 接口 :

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


ApplicationContext接口中有两个主要的实现类:

  • ClassPathXmlApplicationContext
  • FileSystemXmlApplicationContext
类型名功能
ClassPathXmlApplicationContext通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象
FileSystemXmlApplicationContext通过文件系统路径读取 XML 格式的配置文件创建 IOC 容器对象


在这里插入图片描述

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

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

相关文章

一文掌握fastapi微服务开发

目录 一、概述 1.1 微服务 1.1.1 微服务的优势 1.1.2 微服务的缺点 1.2 为何使用Python开发微服务 1.3 FastAPI概述 二、开发 2.1 安装FastAPI 2.1.1 安装虚拟环境 2.1.2 创建虚拟环境 2.1.3 激活虚拟环境 2.1.4 安装FastAPI 2.2 FastAPI简单使用 2.2.1 查询 2.…

java注解以及如何利用反射获取注解的属性值

一、什么是注解 1.Annotation是从JDK5.0开始引入的新技术 2.Annotation的作用 : (1)不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别)(2)可以被其他程序(比如:编译器等)读取 3.Annotation的格式…

【每日一题】【LeetCode】【第十一天】杨辉三角

解决之路 题目描述 测试案例(部分) 第一次 杨辉三角感觉还是挺经典的代码题目?之前大一学C语言好像写过一次。 不过,自己当时就不会写,这次自己先试试能不能想出解决方案。 输入数字是几,那就要输出几…

亚马逊云科技帮助Gemsouls在云上快速实现技术验证与部署

元宇宙热度居高不下,它所创造的虚拟世界进一步拉近了人与人之间的距离,用数字化的形式消除地理与空间上的隔阂。而高度拟真化的虚拟人与AI虚拟社交,是元宇宙落地的重要领域,打造以人工智能驱动的虚拟人社交平台已成为行业大势。 …

DNS 的一些基础知识,以及 DNS 转换域名的过程

DNS(Domain Name System),主要作用是将域名转成 IP,本文主要讲解了 DNS 的一些基础知识,以及 DNS 转换域名的过程。DNS 是什么dig命令绝大多数网络通信都是基于 TCP/IP 协议,而 TCP/IP 协议的基础是 IP,所以网络中的计…

获取未来时间 一年或N年

需求 展示从本月初开始 一年的时间 或N年的时间 以便用户选择思路 一年12个月 是已知的 从本月到12月可以生成本年的每天数据从1月至上月可以生成所需得到最后一年的数据今年加最后一年的月份可拼接一年时间 所以中间年份是所需年分-1的数组数据中间年份都是1-12月 可以通过年份…

软件的生命周期和测试的生命周期的区分

软件的生命周期测试的生命周期软件测试贯穿于软件的整个生命周期在需求分析阶段测试人员的活测试人员需要站在用户角度分析:软件需求是否合理;站在技术角度分析:技术上是否可行,还有没有优化的空间;站在测试角度分析&a…

VALL-E:微软全新语音合成模型可以在3秒内复制任何人的声音

近日,微软研究人员宣布了一种新的语音合成AI模型 VALL-E,给出3秒样音就可以精确地模拟一个人的声音。一旦它学会了一个特定的声音,VALL-E可以复制说话者的情绪和语气,即使说话者本人从未说过的单词也可以模仿。 论文地址&#xf…

xlCompiler转换为程序的优秀工具

xlCompiler转换为程序的优秀工具 xlCompiler是将oxel文件转换为程序的优秀工具。无需担心删除oxel文件中使用的宏和公式。该工具将您所做的转换为Exe可执行文件,这比分发原始文件时要低得多。最终的文件不需要氧气来执行,您也会有一种在简单的氧气环境中…

D. Friendly Spiders(bfs+筛法)

传送门题意:给你n个蜘蛛,每个蜘蛛有自己的腿数,如果某两个蜘蛛可以直接联系,那么这两个蜘蛛的最大公约数就不为1,否则这两只蜘蛛就不能直接联系。现在给你两个蜘蛛的序号i,j问这两只蜘蛛是否可以直接或者通过其他的蜘蛛…

SDK安全专项评测证书

SDK安全专项行动”是中国信息通信研究院安全研究所大数据应用与安全创新实验室共同发起的,实验室紧跟信息技术发展趋势,依托数据安全、移动安全等领域深厚积累,通过前瞻研究和实践探索,形成了完整的SDK评测方案和指标体系。 SDK产…

【HCIA-openEuler】实验手册—05【openEuler软件管理】

文章目录一、实验介绍1、内容描述2、实验目的二、配置Yum源步骤1:进入yum repo目录步骤2:更改openEuler_x86_64.repo文件步骤3:刷新列出软件列表三、使用RPM命令管理软件1、RPM查询命令步骤1:执行以下命令,通过yum和rp…

华为DHCP实验配置

配置AR1为PC2分配地址 dhcp enable ip pool DHCP_PC2 network 192.168.20.200 mask 24 gateway-list 192.168.20.254 dns-list 192.168.20.100 excluded-ip-address 192.168.20.100 int g0/0/1 ip address 192.168.20.254 24 dhcp select global 配置AR1为PC3分配IP地址 dhcp e…

一个令人赞不绝口的代码 Debug 神器

在编写程序时,无论是对于初学者还是对于专业开发人员,都会花费大量时间来调试或修复源代码错误,也就是 Debug。 这个过程繁琐复杂,包括 Bug 复现和 Bug 定位等环节。如果有了自动化的 Debug 程序,就可以显著提高编程实…

Three.js一学就会系列:05 加载3D模型

系列文章目录 Three.js一学就会系列:01 第一个3D网站 Three.js一学就会系列:02 画线 Three.js一学就会系列:03 炫酷3D划线 Three.js一学就会系列:04 炫酷3D文字 文章目录系列文章目录前言一、核心代码讲解引入插件轨道控制器加载…

ES6 课程概述⑤

文章目录9-1. Fetch Api 概述9-2. 基本使用参数返回值9-3 **Response 对象**9-4 Request 对象9-5 Headers 对象9-6 文件上传10-1 迭代器背景知识JS 中的迭代器可迭代协议 与 for-of 循环可迭代协议for-of 循环展开运算符与可迭代对象生成器 (Generator)set 集合9-1. Fetch Api …

Unity 之 Addressable可寻址系统 -- 代码加载介绍

Unity 之 可寻址系统 -- 代码加载介绍 -- 进阶(一)一,可寻址系统代码加载1.1 回调形式1.2 异步等待1.3 面板赋值1.4 同步加载二,可寻址系统分标签加载2.1 场景搭建2.2 代码示例2.3 效果展示三,代码加载可寻址的解释概述…

算法第九期——DFS(深度优先搜索)的树上应用

树 树是一种特殊的图 。 特点: 若树有n个点,则有n-1条边。树有连通性但没有回路。从一个点出发可以到达任意一个,而且路径是唯一的。树的重心u(最平衡的点): 以树上任意一个结点为根计算它的子树的结点数,如果结点…

二部图和匈牙利算法

1.二分图最大匹配 设G为二分图,若在G的子图M中,任意两条边都没有公共节点,那么称M为二分图G的一组匹配。在二分图中,包含边数最多的一组匹配称为二分图的最大匹配。 交替路:从一个未匹配点出发,依次经过非匹配边、匹配边、非匹配边…形成的路径叫交替路。 …

【算法】深度优先搜索 (DFS)

目录1.概述2.代码实现3.应用1.概述 (1)深度优先遍历 (Depth First Search, DFS),是图的搜索算法之一,本质其实就是一个递归的过程,它就像是一棵树的前序遍历。 (2)DFS 从图中某个顶点 start 出…