Spring - IoC

Spring中的IOC详解 单例Bean和多实例Bean的生命周期主要区别在于实例化和销毁的管理方式,单例Bean在容器启动时创建一个实例,并由容器负责管理其生命周期的完整过程。在Spring框架中,Bean是应用程序的核心组件,它们由Spring容器创建、组装和管理,以帮助开发者实现松耦合、可测试和可维护的代码。IOC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。Bean的自动装配是Spring框架提供的一种便捷的方式,用于自动解析和设置Bean之间的依赖关系,而无需显式配置每一个依赖关系的方式。 阅读详情

目录

1、概念

2、为什么要通过配置来做对象的建立及其依赖关系呢?

3、怎么实现对象及其依赖关系的创建呢?

4、控制反转IoC有啥好处?

5、具体实现


从今天开始,阅读资料,整理Spring框架的知识。

Spring框架:截止目前Java最流行的框架,最主要的思想是控制反转(IoC, inversion of Control)和面向切面(AOP, Aspesct Oriented Programming).

这一篇主要了解控制反转IoC。


1、概念

IoC本质是一个容器。Spring通过IoC这个容器,依靠描述(配置文件)来实现对象的创建及其依赖关系。

 


2、为什么要通过配置来做对象的建立及其依赖关系呢?

来想象一下,对于某一类的事物,可以定义一个接口,这类事物有一些子类,可以定义相应的子类。比如糖,有冬瓜糖、西瓜糖、南瓜糖等等。假设我想吃的是冬瓜糖,通过程序的方式,一般是如下这样使用的:首先定义接口下的某一类的具体对象,然后去使用这个具体对象。

// 吃糖,吃冬瓜糖,代码逻辑

Candy candy = new CandyWintermelon();
user.setCandy(candy);
user.useCandy();

但是这样就有一个问题,如果我又想吃南瓜糖了怎么办?是不是需要又需要再去申明一个南瓜糖的对象呢?答案是肯定的,必须再次申明一个南瓜糖的对象,才能实现我又想吃南瓜糖的逻辑。其实这看起来也还好,因为也就才多生成一个对象而已,感觉也不费事。不过想象一下:一个大型互联网的对象是成千上万的,如果需要不断创建、修改新的对象,那么将会出现很大的问题。

因此,Spring提出了使用IoC来实现对象及其依赖关系的创建,其目的就是为了实现对象及其依赖关系创建的快捷和方便。

 


3、怎么实现对象及其依赖关系的创建呢?

方式:用户编写配置文件(一般是XML形式),IoC容器通过这个配置文件去找到相应的对象和依赖关系,然后向用户注入找到的内容。

简单理解:这就是用户提供一个买货清单,然后IoC通过这个清单找货、卖货、送货的过程。其实挺简单的。控制反转的含义就是用户只需要提供用户的需求描述信息,而需求的资源是可以通过需求描述信息在IoC容器中找到的,负责寻找的是IoC容器(拥有控制权的是IoC容器),而不再是用户了,所以叫做控制反转。

 

示例:

使用Spring IoC注入南瓜糖给用户,XML配置文件。

// IoC配置文件

<bean id = "candy" class ="CandyWintermelon" / >
<bean id = "user" class ="xxx.user"  >
        <property name = "candy" ref = "candy"/>
</bean>

4、控制反转IoC有啥好处?

1、想要增加、修改资源不需要再去new对象,想要修改依赖关系也可以通过配置完成,可以即插即拔的管理对象及其关系;

2、把Bean之间的关系解耦了,更容易写出逻辑清晰的代码;

3、提供对Java Bean生命周期的管理,可以延迟加载,在生命周期内定义行为等。能够方便地使用、管理Java资源。

 


5、具体实现

参考:https://blog.youkuaiyun.com/weixin_44823472/article/details/97787171?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2.compare

Spring Ioc实现机制——简析 需要明确一点,任何项目没有了Spring,也依旧能做,那么为什么Spring还会这么火?答案就是Spring的两个特性IoC与AOP,这里需要指出的是,并不是Spring提出的AOP的概念,只能说是Spring很好的实现了AOP的特性。那么,这次就先讨论下Spring IoC的实现机制。  IoC是什么东东? IoC实现的机制是什么样子的? 模拟一个Spring IoC的实现 阅读详情

相关推荐

取证实战:当嫌疑人电脑已关机,如何利用EFDD从休眠文件提取BitLocker密钥?

本文详细介绍了如何利用Elcomsoft Forensic Disk Decryptor(EFDD)从休眠文件(hiberfil.sys)中提取BitLocker密钥的实战技术。通过分析休眠文件中的内存快照,取证人员可以突破已关机加密设备的防线,获取关键解密信息。文章涵盖了工具配置、镜像获取、密钥提取及验证等完整流程,并提供了疑难问题解决方案和法律合规建议。

weixin_29315091的博客 343

Spring中IOC详解

一、IOC的原型 IOC ----控制反转 比如我们有一个功能是获取用户数据,我们使用Dao层实现这个功能,再在Service层调用这个功能。但是我们每增加一个接口,比如获取mysql中的数据,就要修改原来的代码,如果再增加一个新的接口,又需要去service实现类中修改对应的实现。 解决方法 用户实际调用的是业务层,dao层他们不需要接触 UserServiceImpl userService = new UserServiceImpl(); userSe

qq_41359998的博客 1万+

量化交易中的烂板策略:短线高频交易实战解析

量化交易通过算法模型实现自动化投资决策,其中短线高频交易是典型应用场景。从市场微观结构看,涨停板现象反映了资金博弈的动态平衡,而烂板策略正是捕捉涨停板短暂打开时的交易机会。该策略结合L2行情数据和Python量化框架,通过参数化规则识别特定形态的烂板股票,在风险可控前提下追求超额收益。实战中需严格遵循动态仓位管理和止损纪律,适用于A股市场短线交易。高频交易与量化分析技术的结合,为投资者提供了新的alpha挖掘工具。

weixin_30432579的博客 364

Spring中的IOC介绍

Spring中的IOC介绍IOC(控制反转)IOC介绍IOC是什么IOC能做什么Spring容器管理对象1、maven管理依赖2、给定容器的配置文件3、IOC容器管理对象4、通过容器来获取对象Spring中IOC容器介绍Spring中Bean的实例化方式1、基于XML配置方式装配bean2、使用注解方式装配Bean IOC(控制反转) IOC介绍 IOC是什么 IOC(Inversion of Control 即控制反转)将对象交给容器管理 考虑:谁控制谁、控制什么?为了是反转?哪些方面反转? 谁控制了谁?

m0_46853673的博客 1万+

第二章 零差云控关节模组内部构造

对零差云控的eRob70I进行了拆解

SFY__优快云的博客 5965

DEA各种模型原理及stata代码实现

DEA各种模型原理及stata代码实现DEA各种模型原理及stata代码实现一、CCR和BCC1.原理2.效率测算stata代码3.Malmquist指数3.1M指数3.2Global-Malmquist指数4.指数计算代码与案例二、SBM模型1.原理2.stata代码实现三、方向性距离函数(DDF)1.原理2.stata代码实现3.非径向DDF模型(NDDF)3.GML指数4.指数测算四、总结 DEA各种模型原理及stata代码实现 一、CCR和BCC 1.原理 CCR模型产出导向下的效率通过求解以下规划

wonder1322的博客 4万+

【javaEE】Spring IOC

容器是⽤来容纳某种物品的(基本)装置。(有点废话)我们想想,之前课程我们接触的容器有哪些?• List/Map->数据存储容器• Tomcat->Web容器那么Spring也作为一个容器,装的是对象(Bean)这里的Bean跟在Java基础语法中是不一样的,在Javase中Bean指的是实体类,比如Student类在JavaEE进阶中,Bean指的是Spring管理的对象。

mr_yuanshen的博客 1300

帝国CMS v7.5存储型XSS漏洞挖掘与修复实战

存储型XSS(跨站脚本攻击)是一种常见的Web安全漏洞,其核心原理是攻击者将恶意脚本代码提交并永久存储在服务器端(如数据库),当其他用户访问包含该数据的页面时,脚本会在其浏览器中执行。这种漏洞的危害在于其持久性和广泛的影响范围,可能导致用户Cookie被窃取、会话被劫持,甚至引发蠕虫式传播。从技术价值看,理解存储型XSS有助于掌握Web应用安全的核心逻辑,即数据在输入、处理和输出全链路中的安全风险。在内容管理系统(CMS)等Web应用场景中,用户可控的输入点(如个人资料、评论、公告)若未经妥善过滤和输出编码

weixin_29327525的博客 299

Spring IoC容器

核心技术 发行版5.0.8 这一部分的指导文档覆盖了所有的完全集成到Spring框架中的技术。 这些技术中首要的便是Spring框架的控制反转(IoC)容器。Spring框架的IoC容器的全面的处理是与Spring的面向切面编程(AOP)的彻底实现紧密相关的。Spring框架拥有他自己的AOP框架,该技术在概念上是很容器理解的,并且成功的解决了在Java企业编程中的AOP需求的80%的点。 该框...

hongbochen1223的专栏 1万+

k8s上分离集群seatunnel部署(生产推荐)

k8s上分离集群seatunnel部署(生产推荐)

寂夜了无痕的博客 886

2024届数字IC秋招-华为机试-数字芯片-笔试真题和答案(一)(含2022年和2023年)

此部分包含华为机试真题,方向是数字芯片,内容详细包括设计、验证、后端等,大部分题目给出参考答案。华为机试都是从题库里抽题目,所以这些题目还是很有参考性的,甚至是完全一样,可以搜到的。(题目内容较多,将分开编写几个文章)A. genvarB. integerC. wireD.reg参考答案:AA.综合的时候,define无法跨文件列表生效B.宏定义文件最好放在一个文件中集中管理,防止出现不同的项目需要修改不同的宏定义值,但是却漏改了某些地方的情况出现。

qq_42135020的博客 5780

Spring——IOC

Spring是容器(可以管理所有的组件(类))框架什么是容器(Container): 从程序设计角度看就是封装对象的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期,如Tomcat就是Servlet和JSP的容器;为什么说Spring是一个一站式的轻量级开源框架呢?​ 轻量级:不是指Spring框架的模块少,数量很轻,而是Spring的优点Spring的体系结构图核心容器:提供了框架的基本组成部分,包括 IOC 和依赖注入功能。

会奔跑的茄子的博客 764

深水区探秘:小红书App x-s参数逆向与高并发爬虫实战(2026版)

在移动互联网的碎片化时代,小红书凭借其“社区+电商”的独特模式,积累了超过3亿月活用户。其内容生态覆盖了从美妆、穿搭到旅行、数码等几乎所有垂直领域。对于数据分析师、市场研究员以及AI算法工程师而言,小红书平台蕴含的价值是巨大的——无论是热门趋势洞察、KOL画像分析,还是多模态图文数据的采集。然而,想要高效、稳定地获取小红书App的公开数据,却并非易事。与Web端相比,小红书App的防护体系堪称“铜墙铁壁”。其核心的反爬机制建立在动态混淆的加密参数之上,尤其是请求头中的X-SX-T以及X-S-Common。

2201_76125261的博客 263

Spring IOC

合并 Bean 定义,对父类的定义进行合并和覆盖,如果父类还有父类,会进行递归合并,以获取完整的 Bean 定义信息。如果是方法调用是不算循环依赖的,循环依赖必须要持有引用。实际开发中,我们如果在对象 A 内部去创建、修改或者注销另一个对象 B,这会导致对象之间非常复杂的依赖关系,不利于代码的维护更新。比如我们直接在上层类内调用了底层类的构造方法,一旦底层类的构造方法发生改变,就必须修改所有上层类的代码。设值注入:依赖的对象通过 setter 方法传入的,对象已经实例化,发生属性填充和依赖注入的时候。

2401_84881237的博客 1646

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Spring IoC 详解

IoC即控制反转(Inversion of Control),也被称为依赖倒置原则,是设计模式六大原则之一。其核心思想是程序应依赖抽象接口,而非具体实现,从而降低代码间的耦合度。依赖注入(DI):不通过类内部直接创建依赖对象,而是将外部创建好的依赖对象通过构造函数或参数传递给类使用。依赖查找:受控对象通过容器 API 查找所需资源和协作对象。谁控制谁,控制什么:传统编程中,对象由程序主动创建;而 IoC 中,对象由容器控制创建,容器负责管理外部资源获取。为何反转,哪些方面反转。

YT的博客 1455

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring IoC

loC是Spring的核心思想其实loC我们在前面已经使用了,在类上面添加和注解,就是把这个对象交给Spring管理,Spring 框架启动时就会加载该类.把对象交给Spring管理,就是loC思想.IoC:(控制反转)也就是说 Spring 是⼀个"控制反转"的容器什么是控制反转呢?也就是控制权反转.什么的控制权发生了反转?获得依赖对象的过程被反转了也就是说,当需要某个对象时,传统开发模式中需要自已通过new创建对象,现在不需要再进行创建,把创建对象的任务交给容器,程序中只需要依赖注入。

2401_83177222的博客 1392

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring IoC - Spring IoC 的设计

前言 本文为解读Spring IoC 模块源码的开篇介绍。介绍Spring IoC 的相关概念与设计。 What is IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency...

Richard Program Studio 401

spring IOC的理解

是一个对象创建和依赖管理的设计模式。原来对象是由开发者来进行控制的,有了spring后,可以把对象交给spring来帮我们管理。使用IOC时,直接告诉框架,我需要哪些东西,然后spring框架创建,然后我们再拿出来用就行。IOC创建对象的方式:基于XML(少的很)和基于注解(配置类,扫描包)

2301_77574331的博客 1149

Spring IOC 过程

原创出处 http://www.jianshu.com/p/17b66e6390fd 「莫那一鲁道」欢迎转载,保留摘要,谢谢! 1. 广义的 IOC 2. Spring 的 IoC 3. 总结 1. 广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”。 两种实现: 依赖查找(DL)和依赖注入(DI)。 IOC 和 DI 、DL...

a925907195的专栏 1233

Spring IOC详解

什么是Bean。

杰尼龟的小龟壳的博客 1138

Spring IoC &DI入门

IoC是Spring的核心思想,其实IoC我们已经使用过了,在类上添加@Rest Controller和@Controller注解,就是将这个对象交给Spring管理,Spring框架启动时就会加载该类,把对象交给Spring处理,就是IoC思想。概念:IoC (Inversion of Control) 即控制反转,是⾯向对象编程中的⼀种设计原则。主要是通过第三⽅IoC容器,对Bean对象进⾏统⼀管理,及组织对象之间的依赖关系。获得依赖对象的过程,由原本程序⾃⼰控。

wuyunhang123456的博客 899
上一篇: VM安装win7 ghost版
下一篇: 每日算法 - 有序矩阵中第k小的元素
Longtermevolution
博客等级 码龄9年 113粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值