Spring实现控制反转(IOC)的三种方式(零)——理解IOC

Spring IOC(控制反转)思想笔记 Spring IOC(控制反转)思想笔记 IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为用户一个小需求的变化使得程序员需要改动大量代码。 案例 如果按照之前javaweb的固定方法,写一个简单的业务逻辑 一个DAO接口 public interface UserDao { public void getUser(); } 实现DAO接口 public class UserDaoImpl implements UserDao { @Overrid 阅读详情

学过Spring的应该都知道Spring的IOC和AOP,然而我刚接触Spring不久,学习了IOC,发现掌握的不是很好,停留在概念上,今天就以例子来总结一下Spring的IOC。也希望各位大大能够指点迷津。

IOC:也就是控制反转(创建对象实例的控制权反转),说的是一个类A要调用另一个类B,本来应该在类A里面创建B的实例的,控制权在A手里。现在用了Spring了,有了IOC,控制权就不在A手里了,而是交到Spring的IOC容器了,A要用到B,那Spring就把B分给A了。这样说可能有点抽象,没关系,下面举个更抽象的例子。

比如,一个程序员(Programmer),写代码(coding)的时候,需要用到电脑(Computer),在没找到工作之前,这个程序员是要自带电脑的。有一天,这位程序员找到了一份钱多事少离家近的工作了,公司贼好,给他分配了一台高配电脑,专门用来撸代码的,从此这位程序员撸代码再也不用自带电脑了。从Spring IOC角度来看,也就是说,程序员(Programmer)这个对象,执行写代码(coding)这个方法,要依赖电脑这个对象(Computer);一开始呢,是要程序员自己创建电脑这个对象的,也就是自带电脑嘛,那带什么样的电脑,这个控制权是掌握在程序员手里的;找到工作了,公司(可以看做Spring IOC容器)给他分配电脑,不用他带了,那创建电脑对象这个控制权就交到公司手上了。这就是控制反转。还不明白?那下面来个抽象的代码演示。(我的愿望是:搞晕别人,娱乐自己 [手动笑脸])


package com.spring.demo.entity;

/**
 * 一个伟大的程序员类
 * */
public class Programmer {

	private String name;
	private String sex;
	
	public void coding(){
		//要用到computer对象,调用computer的coding方法,
		//在这里new computer对象,控制权在Programmer手里
		Computer computer = new Computer();
		computer.coding();
	}
}

package com.spring.demo.entity;

public class Computer {
	
	private String brand;
	private String color;
	private double size;
	
	public void coding() {
		System.out.println("Computer is coding!!!");
	}

}

上面,就是用传统方式创建依赖对象。接下来,看看Spring IOC是怎样反转控制权来创建对象的。

有三种方式:属性注入,构造器注入,自动装配。

篇幅太长,分开来写,如有兴趣,请关注后面的文章


【Spring】深入理解控制反转-IOC 在软件开发中,控制层(Controller)、业务逻辑层(Service)、数据访问层(DAO)三层架构是一种广泛采用的设计模式。 阅读详情

相关推荐

Weaxor勒索病毒实战分析:从加密算法到防御策略(附检测工具清单)

本文对Weaxor勒索病毒进行了深度实战剖析,详细拆解了其采用ChaCha20与AES-CTR的混合加密算法、横向移动手法及数据回传行为。文章重点分析了其密钥生成机制的“漏洞修复”,并提供了从主机加固、网络监控到基于IOC威胁狩猎的立体化企业级防御策略与检测工具清单。

weixin_29233333的博客 263

Spring实现IOC(控制反转)的三种方式

IOC:也就是控制反转(创建对象实例的控制权反转),说的是一个类A要调用另一个类B,本来应该在类A里面创建B的实例的,控制权在A手里。现在用了Spring了,有了IOC,控制权就不在A手里了,而是交到Spring的IOC容器了,A要用到B,那Spring就把B分给A了。 下面通过具体的例子来说明: package com.spring.demo.entity; /** * 一个伟

旧城以西的博客 1万+

Obsidian与GPT协作:数学公式从KaTeX到MathJax的无缝转换实践

本文针对Obsidian用户从GPT等AI助手复制数学公式时遇到的KaTeX与MathJax格式不兼容问题,提供了高效的解决方案。重点介绍了KaTeX to MathJax插件的核心作用,它能自动将AI生成的KaTeX格式公式(如\(...\))无缝转换为Obsidian默认支持的MathJax格式($...$),实现复制粘贴后公式即时渲染,极大提升了数学笔记与AI协作的效率和流畅度。

weixin_29209825的博客 137

Spring的控制反转的三种方式

Ioc(控制反转) :Spring的基本思想之一。将A和B之间的管理交由C管理。通常使用一下三种方式: 1、构造方法注入 2、setter注入 3、接口注入

帅气的老佛 1486

手把手教你用T630芯片开发USB3.0数据采集卡(含FPGA对接避坑指南)

本文详细介绍了如何使用国产T630芯片开发USB3.0数据采集卡,包括FPGA对接的避坑指南。T630作为国产替代方案,相比传统CYUSB3014芯片,具有更高的传输带宽(实测410MB/s)和更完善的开发支持。文章从硬件设计、固件开发到上位机调试,提供了全流程的技术细节和优化技巧,助力开发者快速实现工业级数据采集系统。

weixin_42531163的博客 621

隐语第四课:快速上手-SecretFlow的安装和部署

隐语课程,继续学习隐私计算技术

weixin_41467180的博客 2509

Spring实现控制反转(IOC)的三种方式(三)——自动装配

续:Spring实现控制反转(IOC)的三种方式(零)——理解IOC Spring实现控制反转(IOC)的三种方式(一)——属性注入 Spring实现控制反转(IOC)的三种方式(二)——构造器注入 前面简单的说了Spring IOC注入实例的两种方式,下面也是从菜鸟角度来说说自动装配的方式。 package com.spring.demo04.entity; impor

格局、视野、认知 2206

【Labview学习】——如何实现软件的中/英文切换

各位亲爱的小伙伴们大家好,这里是小万的labview专题,今天为大家带来的是软件的中/英文切换,在全球化的浪潮之下,各行各业发生着巨大的变化,emmm………… 以下是简单的演示图片,注意观察菜单栏和软件界面各控件的语言状态: 本次分享将分为两部分:菜单中英文切换&界面控件中英文切换 ** 菜单中英文切换 ** 1. 中/英文菜单制造 要想实现菜单的中/英文语言切换,就得做两个菜单,一个...

weixin_44827166的博客 1万+

spring--ioc

spring–ioc 1. 什么是spring,它能够做什么? Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的...

chen的博客 743

告别环境配置烦恼:用Conda一键搞定GATK4、samtools、fastp等生信分析全家桶

本文介绍如何利用Conda快速搭建包含GATK4、samtools、fastp等工具的生物信息学分析环境,解决软件安装和版本冲突问题。通过详细的配置步骤和实战案例,帮助研究者十分钟内完成重测序分析全家桶的环境配置,显著提升上游分析效率。

weixin_30753873的博客 334

基于OpenClaw的AI数字员工协同团队架构设计

随着大型语言模型从被动的文本生成器向具备自主规划与执行能力的智能代理演进,企业级人工智能的应用范式正在发生根本性转变。在这一演进过程中,OpenClaw(前身为Clawdbot及Moltbot)作为一种开源的、本地优先的个人AI智能体网关基础设施,凭借其对持续内存、多通道接入以及沙盒化工具执行的原生支持,迅速成为构建“始终在线”数字劳动力的核心框架 1。然而,将单体个人助理扩展为能够处理复杂业务逻辑、支持跨组织协同并严格保障数据隔离的多智能体(Multi-Agent)团队,绝非简单的API拼接。系统架构必须

形上得其象,形下合于数;阴阳自济,玄理自明。 1047

Spring:IoC(控制反转、依赖注入、循环依赖)

IoC 不是一种技术,只是一种思想并非 Spring 特有,其思想是反转资源获取的方向。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的资源了。IoC很好的体现了面向对象设计法则之一—— 好莱坞法则:“别找我们,我们找你”;即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。

燕双嘤 2352

19、英国模式:银行体系的演变与现代金融架构

本文深入探讨了英国银行体系从专业化向全能银行的演变过程,分析了自律监管模式的优劣,并解析了围栏制度对金融稳定的影响。同时,文章还介绍了信用合作社、建筑协会和投资银行的角色与转型,全面展示了英国金融体系的多样性与复杂性,以及其在全球金融市场中的重要作用。

embedding5hiker的博客 104

Spring 框架入门介绍及IoC的三种注入方式

- 用Spring框架来实现全新的控制反转方法,让你的应用程序更加灵活和易于维护 - 创建一个基于Spring框架的控制反转教程,帮助开发人员更好地理解和运用这个设计模式 - 探索Spring框架中控制反转的潜在优势,包括减少模块之间的耦合、提升可测试性和可扩展性 - 设计一个创新的Spring应用程序,利用控制反转实现模块之间的松耦合关系 - 分析控制反转在Spring框架中的实际应用,包括依赖注入和依赖查找的使用场景

让优秀成为一种习惯! 2831

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IOC 和 AOP、Ioc的三种实现方式:基于xml的方式、注解的方式、基于配置类的方式

IOC 和 AOP、Ioc的三种实现方式:基于xml的方式、注解的方式、基于配置类的方式

hutao8896的博客 3275

OV9734 DATASHEET,完整规格书

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

[Spring] IoC的理解及三种依赖注入方式

[Spring] IoC的理解及三种依赖注入方式Spring---IoC的理解及三种依赖注入方式IoC是什么意思依赖控制反转Spring提供的依赖注入的三种方式setter注入(属性注入)构造器注入p命名空间注入(工厂方法注入)@Autowired Spring—IoC的理解及三种依赖注入方式 IoC是什么意思 IoC,即控制反转,依赖注入(DI)是SpringIoC的一个具体体现,因此,我们可以通过DI(依赖注入)来理解什么是IoC。 要理解什么是依赖注入,首先就要知道什么是依赖。 依赖 定义: 例如在类

cloud的博客 8909

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

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

IOC(控制反转)

所谓依赖注⼊,就是由 IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中依赖注入就是在程序运行的时候由IOC容器动态的将我所依赖的对象加入到当前类中的过程谁依赖于谁 : 应用程序依赖于IOC容器为什么需要依赖 : 应用程序需要IOC容器来提供对象所需要的外部资源谁注入谁 : IOC容器注入应用程序依赖的对象注入了什么 : 注入某个对象所依赖的外部资源(包括对象,资源,常量数据...)

欢迎来到我的博客,在这里我会用我的方式来讲解知识,请大家多多关照 8856

《Spring》IOC实现原理

《Spring》IOC实现原理1. 概述2. 依赖倒置3. 控制反转4. 常用容器4.1 BeanFactory4.2 ApplicationContext5. Bean的作用域6. Bean的生命周期 1. 概述 IOC(Inversion of Control)控制反转,也称为DI(Dependency Injection)依赖注入。所谓IOC ,就是把原先代码里需要开发者实现的对象创建和关系依赖,反转交给SpringIOC容器管理对象的生命周期和对象之间的依赖关系。 Spring通过配置文件描述Be

飞飙的蜗牛 1万+

深入理解Spring 之 IOC 控制反转

IOC(Inversion of Control)控制反转是Spring框架的核心思想之一,它是一种设计原则,用于降低代码之间的耦合度。在传统编程中,对象的创建和管理由开发者直接控制,而IOC模式将这种控制权交给容器,由容器来负责对象的生命周期管理。从"主动创建对象"到"被动接收对象"从"直接调用依赖对象"到"依赖对象被注入"从"程序控制对象生命周期"到"容器管理对象生命周期"IOC控制反转是Spring框架的基石,它通过将对象的创建和管理权交给容器,极大地简化了企业级应用的开发。

yyyyyyyh的博客 688

Spring核心之控制反转(IOC)

1、@Autowired是Spring自带的,@Resource是JSR250规范实现的,@Inject是JSR330规范实现的2、@Autowired、@Inject用法基本一样,不同的是@Inject没有required属性3、@Autowired、@Inject是默认按照类型匹配的,@Resource是按照名称匹配的4、@Autowired如果需要按照名称匹配需要和@Qualifier一起使用,@Inject和@Named一起使用,@Resource则通过name进行指定。

埃泽漫笔 1331

【Spring】IoC和DI,控制反转,Bean对象的获取方式

IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式

阿华的博客 1571

Spring核心之IOC(Inversion of Control)控制反转的三种实现方式

总结一下Spring框架核心之IOC(Inversion of Control)控制反转的三种实现方式: 1、纯配置文件配置; 2、配置文件+注解两掺; 3、纯注解; 其中,个人认为:纯配置文件配置的方式易读易理解;纯注解方式开发效率更高;配置文件+注解两掺方式在实际应用中更常用。 此文中IOC的三种实现方式均采用maven工程环境搭建。 maven工程导入依赖坐标 <properties...

weixin_45429218的博客 920

Spring中IOC(控制反转)的理解

Spring中的IOC(控制反转) 先不讲IOC, 我们先通过发现问题,然后使用工厂模式解决问题,最后到IOC 示例: 分析jdbc的两种注册驱动的方式,比较两种方式那种更适合实际的开发 DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver); Class.forName("com.mysql.cj.jdbc.Driver"); 第一种方式,我们为了注册驱动,new了一个Driver实例 第二种方式,利用反射技术,通过一个字符串创建了一个

编程大白菜 2160

spring IOC的理解

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

2301_77574331的博客 1149

Spring框架 —— 控制反转IOC

在前一篇文章中荔枝已经初步了解了Spring并通过一个入门案例了解了Spring的基本操作,接下来荔枝就要梳理Spring中的最为重要的知识点之一——IoC控制反转,控制反转和属性注入均是基于Java中的反射机制来实现的。所以学习这个知识点之前必须要学习Java的反射机制。在这篇文章中荔枝会着重梳理两种获取bean和操作bean的方式,其中基于注解方式来操作bean更为重要。

荔枝当大佬的博客 1394

【Spring系列】- 深入理解Spring IoC

IoC全称Inversion of Control控制反转,别名为Dependency Injection依赖注入。如果我们依赖于某个类或服务,最简单而有效的方式就是直接在类的构造函数中新建相应的依赖类。可是我们自己每次用到什么依赖对象都要主动地去获取,这是否真的必要?我们最终所要做的,其实就是直接调用依赖对象所提供的某项服务而已。只要用到这个依赖对象的时候,它能够准备就绪就行。如果有人能够在我们需要时将某个依赖对象送过来,为什么还要自己去折腾?

m0_68383079的博客 1646
上一篇: java基础(三)——多态
下一篇: Spring实现控制反转(IOC)的三种方式(一)——属性注入
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值