Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧)

驾驶员疲劳检测毕设实战:轻量双流CNN+状态机预警 驾驶员疲劳检测是计算机视觉在智能座舱中的典型落地场景,其本质是多任务协同的时序行为分析问题——需同步完成人脸鲁棒检测、眼部/嘴部关键区域定位、微表情量化(如EAR/MAR)及动态状态推理。技术核心在于平衡精度与边缘部署约束:传统端到端CNN易受域偏移和梯度冲突影响,而轻量级双流架构(Eye Stream + Mouth Stream)结合Dlib关键点驱动的姿态估计,可解耦强相关任务并提升泛化性;再辅以有限状态机(FSM)建模疲劳的时间累积特性,有效抑制瞬时抖动误报。本文聚焦毕业设计真实落地瓶颈,覆盖人脸对 阅读详情

1.IoC是什么?

IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。

2.IoC解决了什么问题?

在IoC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之间的依赖关系的。

这种方式就造成了组件之间的互相耦合。IoC(控制反转)就是来解决这个问题的,它将实现组件间的关系从程序内部提到外部容器来管理。

也就是说,由容器在运行期将组件间的某种依赖关系动态的注入组件中。

3.IoC的实现方式 及 与DI的关系?

(1).依赖查找(Dependency Lookup):容器中的受控对象通过容器的API来查找自己所依赖的资源和协作对象。

这种方式虽然降低了对象间的依赖,但是同时也使用到了容器的API,造成了我们无法在容器外使用和测试对象。

依赖查找是一种更加传统的IoC实现方式。

(2).依赖注入(Dependency Injection):这就是DI,字面上理解,依赖注入就是将服务注入到使用它的地方。对象只提供普通的方法让容器去决定依赖关系,

容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean中的setter)或者是构造子传递给需要的对象。

相对于IoC而言,依赖注入(DI)更加准确地描述了IoC的设计理念。所谓依赖注入,即组件之间的依赖关系由容器在应用系统运行期来决定,

也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。

4.Spring中的IoC与DI:

IoC是Spring的核心,贯穿始终。对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。

Spring中DI有两种实现方式---Setter方式(传值方式)和构造器方式(引用方式)。

系列思维导图(Java架构)(下面的图片只是一部分)

13467292-2dce71432b4b4e5f

现在加群即可获取思维导图,还有Java工程化、高性能及分布式、高性能、高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及相关资料,群号:835638062 点击链接加入群聊【Java高级架构学习交流】:https://jq.qq.com/?_wv=1027&k=5S3kL3v

IoC与DI

首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。

那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告诉它我想找个什么样的女朋友,比如长得像李嘉欣,身材像林熙雷,唱歌像周杰伦,速度像卡洛斯,技术像齐达内之类的,然后婚介就会按照我们的要求,提供一个mm,我们只需要去和她谈恋爱、结婚就行了。简单明了,如果婚介给我们的人选不符合要求,我们就会抛出异常。整个过程不再由我自己控制,而是有婚介这样一个类似容器的机构来控制。Spring所倡导的开发方式就是如此,所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。如果你还不明白的话,我决定放弃。

IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。关于反射的相关资料请查阅java doc。

理解了IoC和DI的概念后,一切都将变得简单明了,剩下的工作只是在spring的框架中堆积木而已。

如果还不明白,放弃java吧!

下面来让大家了解一下Spring到底是怎么运行的。

public static void main(String[] args) {

ApplicationContext context = new FileSystemXmlApplicationContext(

"applicationContext.xml");

Animal animal = (Animal) context.getBean("animal");

animal.say();

}

这段代码你一定很熟悉吧,不过还是让我们分析一下它吧,首先是applicationContext.xml

<bean id="animal" class="phz.springframework.test.Cat">

<property name="name" value="kitty" />

</bean>

他有一个类phz.springframework.test.Cat

public class Cat implements Animal {

private String name;

public void say() {

System.out.println("I am " + name + "!");

}

public void setName(String name) {

this.name = name;

}

}

实现了phz.springframework.test.Animal接口 itxxz.com

public interface Animal {

public void say();

}

很明显上面的代码输出I am kitty!

那么到底Spring是如何做到的呢?

接下来就让我们自己写个Spring 来看看Spring 到底是怎么运行的吧!

首先,我们定义一个Bean类,这个类用来存放一个Bean拥有的属性

/* Bean Id */

private String id;

/* Bean Class */

private String type;

/* Bean Property */

private Map<String, Object> properties = new HashMap<String, Object>();

一个Bean包括id,type,和Properties。

接下来Spring 就开始加载我们的配置文件了,将我们配置的信息保存在一个HashMap中,HashMap的key就是Bean 的 Id ,HasMap 的value是这个Bean,只有这样我们才能通过context.getBean("animal")这个方法获得Animal这个类。我们都知道Spirng可以注入基本类型,而且可以注入像List,Map这样的类型,接下来就让我们以Map为例看看Spring是怎么保存的吧

Map配置可以像下面的

<bean id="test" class="Test">

<property name="testMap">

<map>

<entry key="a">

<value>1</value>

</entry>

<entry key="b">

<value>2</value>

</entry>

</map>

</property>

</bean>

Spring是怎样保存上面的配置呢?,代码如下:

if (beanProperty.element("map") != null) {

Map<String, Object> propertiesMap = new HashMap<String, Object>();

Element propertiesListMap = (Element) beanProperty

.elements().get(0);

Iterator<?> propertiesIterator = propertiesListMap

.elements().iterator();

while (propertiesIterator.hasNext()) {

Element vet = (Element) propertiesIterator.next();

if (vet.getName().equals("entry")) {

String key = vet.attributeValue("key");

Iterator<?> valuesIterator = vet.elements()

.iterator();

while (valuesIterator.hasNext()) {

Element value = (Element) valuesIterator.next();

if (value.getName().equals("value")) {

propertiesMap.put(key, value.getText());

}

if (value.getName().equals("ref")) {

propertiesMap.put(key, new String[] { value

.attributeValue("bean") });

}

}

}

}

bean.getProperties().put(name, propertiesMap);

}

IT学习者(www.itxxz.com)

接下来就进入最核心部分了,让我们看看Spring 到底是怎么依赖注入的吧,其实依赖注入的思想也很简单,它是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。让我们看看具体它是怎么做的吧。

首先实例化一个类,像这样

public static Object newInstance(String className) {

Class<?> cls = null;

Object obj = null;

try {

cls = Class.forName(className);

obj = cls.newInstance();

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

} catch (InstantiationException e) {

throw new RuntimeException(e);

} catch (IllegalAccessException e) {

throw new RuntimeException(e);

}

return obj;

}

接着它将这个类的依赖注入进去,像这样

public static void setProperty(Object obj, String name, String value) {

Class<? extends Object> clazz = obj.getClass();

try {

String methodName = returnSetMthodName(name);

Method[] ms = clazz.getMethods();

for (Method m : ms) {

if (m.getName().equals(methodName)) {

if (m.getParameterTypes().length == 1) {

Class<?> clazzParameterType = m.getParameterTypes()[0];

setFieldValue(clazzParameterType.getName(), value, m,

obj);

break;

}

}

}

} catch (SecurityException e) {

throw new RuntimeException(e);

} catch (IllegalArgumentException e) {

throw new RuntimeException(e);

} catch (IllegalAccessException e) {

throw new RuntimeException(e);

} catch (InvocationTargetException e) {

throw new RuntimeException(e);

}

}

最后它将这个类的实例返回给我们,我们就可以用了。我们还是以Map为例看看它是怎么做的,我写的代码里面是创建一个HashMap并把该HashMap注入到需要注入的类中,像这样, itxxz.com

if (value instanceof Map) {

Iterator<?> entryIterator = ((Map<?, ?>) value).entrySet()

.iterator();

Map<String, Object> map = new HashMap<String, Object>();

while (entryIterator.hasNext()) {

Entry<?, ?> entryMap = (Entry<?, ?>) entryIterator.next();

if (entryMap.getValue() instanceof String[]) {

map.put((String) entryMap.getKey(),

getBean(((String[]) entryMap.getValue())[0]));

}

}

BeanProcesser.setProperty(obj, property, map);

}

最后送波福利。现在加群即可获取Java工程化、高性能及分布式、高性能、高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及领取相关资料,群号:835638062 点击链接加入群聊【Java高级架构学习交流】:https://jq.qq.com/?_wv=1027&k=5S3kL3v

IEEE LaTeX模板中algorithm排版避坑指南:如何优雅地嵌入算法描述? 本文详细解析了在IEEE LaTeX模板中优雅排版algorithm的实用技巧,包括基础配置、高级自定义及常见问题解决方案。通过嵌套环境与[H]参数的应用,帮助研究者克服IEEEtran模板对算法排版的限制,实现专业且美观的算法呈现。 阅读详情

相关推荐

计组实验4 控制冒险与分支预测

目录前言实验内容背景知识分支预测技术⭐阻塞周期计算方法不开启 BTB开启 BTBpart 1 矩阵乘法与优化未开启 BTB 的分析开启 BTB 的分析part 2 设计代码使 BTB 无效part 3 循环展开优化矩阵乘法未开启 BTB开启 BTB结束语结论 前言 上一篇博客:计组实验3 mips冒险之流水线冒险 摸了半个月了。。。咕咕咕 今天来写计组实验 4 这个实验非常简单,就是有点难。 这个实验比较容易算错,或者是被模拟器出人意料的结果搞的神神叨叨的,所以今天来记录并且详细分析该实验。 注:请务必阅

AKGWSB 's blog 5668

Spring——IoC和DI

目录一、初识Spring为什么要使用Spring什么是SpringSpring框架的核心由哪些模块组成二、Core Container(核心容器)IoC(控制反转)什么是 IoCIoC 的作用IoC 的优点IoC 的缺点DI(依赖注入)什么是DI依赖注入的基本原则依赖注入的优势不同类型的依赖注入实现方式构造器依赖注入和 Setter方法注入的区别顶级接口BeanFactory 和 ApplicationContext 的区别BeanFactory和ApplicationContext的关系详解Applica

浪漫不死的博客 3897

GB28181协议实战:5分钟搞定海康摄像头SIP注册失败问题(附Wireshark抓包分析)

本文详细解析了海康摄像头在GB28181协议下SIP注册失败的7个关键原因及解决方案,包括网络可达性、鉴权参数、NAT穿越等核心问题。通过Wireshark抓包分析,提供快速定位方法,帮助工程师高效解决SIP注册失败问题,提升实时图像联调效率。

weixin_29212867的博客 553

Spring的核心基础——IOC与DI

Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90%专业角度 简化开发,降低企业级开发的复杂性 框架整合,高效整合其他技术,提高企业级应用开发与运行效率

m0_69383623的博客 2114

一文了解英伟达(NVIDIA)所有显卡芯片

英伟达(NVIDIA)的产品线庞杂繁复,从面向游戏玩家的GeForce RTX系列,到数据中心的H100、B200,再到Jetson、DRIVE等边缘智能平台,一般人很难以厘清其全貌。这篇文章将用通俗而专业的语言,一文打通英伟达显卡芯片体系,让你彻底读懂这个GPU帝国是如何运转的。

bjdx_001的博客 6359

手把手教你用RTL8306MB搭建小型网络交换机:从原理到实战

本文详细介绍了如何使用RTL8306MB交换芯片从零搭建小型网络交换机的全过程。内容涵盖芯片原理分析、核心硬件电路设计(包括电源、时钟、RMII接口连接要点)、驱动开发与SMI通信实现,以及从物理链路到交换功能的系统调试实战。重点解析了将MAC5配置为RMII PHY模式与CPU对接的关键步骤和常见错误,帮助嵌入式开发者深入理解网络交换原理并完成实践。

weixin_29274969的博客 192

Spring的IOC和DI

IOC的原理反射,AOP的是代理 1、IOC和DI的关系: 关于IOC和DI,控制反转和依赖注入 IOC 控制反转,以前的使用类里的方法,需要创建对象,调用里面的方法,现在创建对象 是靠spring 来管理,从之前的主动创建对象使用方法,到现在的被动等待spring创建好对象。 DI,是依赖注入,把创建的对象放到spring容器中,某个类里使用某个对象的时候,需要注入到这个类里面,对属性赋...

NeilNiu 365

如何通过常规测井曲线识别砂岩、泥岩、碳酸盐岩和煤层

常规测井曲线通过不同岩性的物理性质差异识别砂岩、泥岩、碳酸盐岩和煤层。砂岩表现为低自然伽马(GR)、中等密度(RHOB)和声波时差(DT);泥岩以高GR、高中子(NPHI)和高DT为特征;碳酸盐岩显示低GR、高RHOB和低DT;煤层则具有极低RHOB、极高NPHI和DT的独特组合。综合GR与三孔隙度曲线(RHOB、NPHI、DT)可有效区分岩性,其中密度测井对煤层识别最可靠。电阻率(RT)曲线辅助判断流体性质,但需结合其他参数综合分析。

love code, love life. 2593

【Spring】IoC及DI 关系

[学习] Spring之IoC及DI的理解一、IoC和DI的关系二、控制反转IoC(inversion of control)1_ApplicationContext的三个实现类2_BeanFactory和ApplicationContext的区别3_Spring创建对象4_Bean的作用域及生命周期三、依赖注入DI(Dependency Injection)1_依赖注入的数据类型2_依赖注入的方式3_复杂对象注入 博客说明 初次写博客,博客内文章所涉及的资料来自互联网整理及个人学习总结,仅仅用于个人学习

TZGod的博客 732

RK3566/RK3588 NPU性能实测:用mobilenet模型快速验证你的开发板NPU是否正常工作

本文提供了RK3566/RK3588开发板NPU性能实测指南,通过MobileNet模型快速验证NPU是否正常工作。详细介绍了环境搭建、测试资源获取、编译运行及结果分析的全流程,帮助开发者高效验证神经网络加速器功能,为后续AI应用部署奠定基础。

weixin_28826521的博客 448

Labview 机器视觉(4)之 图像处理进阶 - 动态ROI与批量保存

本文深入探讨了LabVIEW机器视觉中动态ROI与批量保存两大进阶技术。动态ROI通过模式匹配或粒子分析实现检测区域的自动追踪,解决了产品位置变化带来的挑战。同时,文章详细介绍了如何设计高效的文件命名规则与异步保存机制,以实现海量图像数据的批量保存与管理,从而构建稳定、高效的工业自动化检测系统。

weixin_29234423的博客 219

Java框架学习之Spring的IoC和DI介绍

一.基本概念: IoC:Inverse of Control(控制反转): 读作“反转控制”,更好理解,不是什么技术,而是一种设计思想,好比于MVC。就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 正控:若调用者需要使用某个对象,其自身就得负责该对象的创建。 反控:调用者只管负责从Spring容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了Sp...

weixin_41588751的博客 912

【Docker】常见容器问题解决#OCI runtime create failed: container_linux.go:349: starting container process

ERROR: for nginx Cannot start service nginx: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/data/docker-compose/n

liu_chen_yang的博客 5528

IOC和DI的区别详解

IOC &nbsp; inversion of control &nbsp;控制反转 DI &nbsp; Dependency Injection &nbsp;依赖注入 要理解这两个概念,首先要搞清楚以下几个问题: 参与者都有谁?依赖:谁依赖于谁?为什么需要依赖?&nbsp;注入:谁注入于谁?到底注入...

常庆伟的博客 8342

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ruoyi中的Spring IOC,DI注解与Spring MVC注解

在 RuoYi 中,Spring Boot 启动时通过自动扫描所有带注解的类,由 IOC 容器负责创建对象,再用@Autowired完成 DI 注入,最终形成从 Controller → Service → Mapper 的完整依赖链。所有这些,都是由 Spring 的注解驱动机制(IOC + DI)自动完成的。Spring MVC 是 Spring 框架提供的一个基于 MVC 模式 的 Web 框架,用来简化 Web 应用的开发。它的核心功能是将请求处理、业务逻辑、视图展示分离,降低耦合性,提高可维护性。

jamorant123_的博客 632

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IoC与DI概念

IoC与DI   首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想

3706

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

spring ioc di 原理解析

登录 | 注册 收藏成功 确定 收藏失败,请重新收藏 确定 *标题 标题不能为空 网址 标签 位置 个人主页 - 我的知识 同时保存至: 选择知识图谱 选择知识图谱 新建?

qq_34677509的博客 1137

spring的ioc和di详解

IoC与DI 首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处...

chuocongzhou7584的博客 51

深入浅出讲解Spring IOC和DI的区别

很多人都会把ioc和di说成同一个东西,其实IOC和DI虽然在概念上可以笼统地视为同一事物,但其本质上存在区别。IOC(Inverse of Control,控制反转)从容器的角度描述,而DI(Dependency Injection,依赖注入)则从应用程序的角度描述。换言之,IOC是依赖倒置原则的设计思想,而DI则是该原则的具体实现方式。因此,我们希望能够更加严谨地区分这两个概念,以更好地理解和应用它们。

小电玩 1196

IOC/DI详解

首先说说IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所

sinat_38032468的博客 348

Spring学习(2)-搞懂Spring核心思想:IOC(控制反转)和DI(依赖注入)

Spring的思想体系/实现理念——IOC(Inversion Of Control 控制反转)和DI(Dependency Injection 依赖注入)

此成非彼诚博客 1144

Spring的三大核心思想:IOC(控制反转),DI(依赖注入),AOP(面向切面编程)

Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧) 1.IoC是什么? IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。 2.IoC解决了什么问题? 在IoC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之...

diaoju3333的博客 684

Spring之IoC,DI依赖注入

目录一、IoC1.1、IoC本质二、DI(依赖注入)2.1、概念2.2、构造器注入2.3、Set注入2.4、注解方式 一、IoC 1.1、IoC本质 IoC是Spring框架的核心内容,中文译为控制反转,它是一种设计思想,想要实现IoC我们就要使用一种方式就是DI-依赖注入。 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫

qq_46027706的博客 315

[转]深入浅出讲解Spring IOC和DI的区别

很多人都会把ioc和di说成同一个东西,其实IOC和DI虽然在概念上可以笼统地视为同一事物,但其本质上存在区别。控制反转)从容器的角度描述,而DI(Dependency Injection,依赖注入)则从应用程序的角度描述。换言之,IOC是依赖倒置原则的设计思想,而DI则是该原则的具体实现方式。因此,我们希望能够更加严谨地区分这两个概念,以更好地理解和应用它们。

Admans的专栏 234

IOC与DI

这里引用一个叫Bromon的blog上找到的浅显易懂的答案对理解很有帮助,正文如下: IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听...

9 Tribez的博客 199

浅谈IOC与DI

IOC Inversion Of Control即控制反转,不是一种技术,而是一种设计思想。在java开发中,ioc意味着你将设计好的对象交给容器去控制,而不是传统的在你的对象内部直接控制。 理解ioc必须明白谁控制谁,怎么反转的,为什么叫反转。 谁控制谁 在传统的javase中,我们直接在对象内部通过new方法创建对象,是程序主动去创建依赖对象,而IOC是有专门的容器去创建对象的,也就是IOC容...

hqh1357054948的博客 195
上一篇: 「架构思维导图」搞定数据库索引就是这么简单
下一篇: 35岁程序员裸辞两月,找不到工作,感慨程序员是碗青春饭!
普通网友
博客等级 码龄8年 55粉丝 197原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值