Spring 之 IOC ,DI 理论

本文是依照极客学院java《Spring之IOC》章节学习的心得。随笔记录

浅谈IOC:(Inversion of Control, 控制反转) Spring 核心容器,贯穿始终。所谓IOC,对Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系:

1、 传统开发模式:对象之间互相依赖

2、 IOC开发模式:IOC容器安排对象之间的依赖(中间加入一个管理控制中介)

IOC理论的背景:

图一为传统设计对象相互引用的模式,所有的对象同过相互之间的合作实现系统的逻辑,相互耦合起来共同实现任务,其中一个部分出现问题就有可能影响整个系统的运行

图二为引用IOC理论为对象之间的关系进行解耦:IOC理论的意义就是将复杂的对象间的关系分解成相互合作的对象,通过封装,对象类实现对外部是透明的,从而降低了问题的复杂度,而且还可以灵活的被重用和扩展(将对象 间的耦合关系断开,控制权全部交由第三方,所以IOC容器是整个系统的关键核心)

依赖注入:

IOC的另外名字叫做依赖注入(Dependency Injection),所谓的依赖注入,就是由IOC容器在运行期间,动态的将某种依赖关系注入到对象中,所以,依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象见的解耦

IOC的好处:

IOC在编程过程中不会对业务对象构成很强的侵入性,使用IOC之后,对象具有更好的可实行性,可重用性和可扩展性:

1、 降低组件之间的耦合性

2、 提高开发效率和产品质量

3、 统一标准,提高模块的可复用性

4、 模块具有热插拔特性

IOC的通俗理解:

1、 IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在XML文件控制,侧重于原理

2、 DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现

(补充)3、DIP依赖倒置原则:以上框架的设计原则,(依赖倒置原则,它转换了依赖,高层模块不依赖于低层模块的实现,而低层模块依赖于高层模块定义的接口。通俗的讲,就是高层模块定义接口,低层模块负责实现。)

时间: 2024-10-12 16:10:44

Spring 之 IOC ,DI 理论的相关文章

用大白话说Spring的IOC,DI

IOC(Inverse of  Control)控制反转 Java即生活,鄙人的感悟. ---------好比我们需要租房.现在我们房源不需要找到某个具体的房东(new fangdong() 房东对象才能租他的房 fangdong.rent()).如果我们对这个房东的房源不满意,离地铁太远了.....heh.我们还需要找下个房东new下个房东.IOC容器就像个中介,他手里有很多房源.而我们只要通过这个中介第三方,就可以选到合适的房源.中介的存在减少了你和房东之间的耦合度.中介增加了你的容错性,

Spring之IOC/DI(反转控制/依赖注入)_入门Demo

软件152 刘安民 在平时的java应用开发中,我们要实现某一个功能或者说是完成某个业务逻辑时至少需要两个或以上的对象来协作完成,在没有使用Spring的时候,每个对象在需要使用他的合作对象时,自己均要使用像new object() 这样的语法来将合作对象创建出来,这个合作对象是由自己主动创建出来的,创建合作对象的主动权在自己手上,自己需要哪个合作对象,就主动去创建,创建合作对象的主动权和创建时机是由自己把控的,而这样就会使得对象间的耦合度高了,A对象需要使用合作对象B来共同完成一件事,A要使用

Spring之IOC&DI/装配Bean(一)

简介 今天学习Spring的第一天,无非也就是入门基础知识.主要了解IOC和DI部分,要熟练掌握哦~ Spring简介 1. Spring介绍 Spring是一个非常活跃的开源框架:它是一个基于Core来构架多层JavaEE系统的框架,它的主要目地是简化企业开发. Spring以一种非侵入式的方式来管理你的代码,Spring提倡"最少侵入",这也就意味着你可以适当的时候安装或卸载Spring 2. Spring框架的优势 ?方便解耦,简化开发 ?Spring就是一个大工厂,可以将所有对

Spring基础[IOC/DI、AOP]

一.Spring作用:管理项目中各种业务Bean(service类.Dao类.Action类),实例化类,属性赋值 二.Spring IOC(Inversion of Control )控制反转,也被称为依赖注入(Dependency Injection[DI]),是面向对象编程 中的一种设计理念,用来减轻程序代码之间的耦合度. IOC原理:侧重原理 在业务代码中不使用我们之间司空见惯的关键字new来构建一个业务实例,而是在配置文件中.通过xml节点来告知容器如何对内存中构建的对应类型的对象名称

spring的IOC和AOP详细讲解

1.解释spring的ioc? 几种注入依赖的方式?spring的优点? IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是有这个IOC容器进行产生,同时,要是产生的是单例的bean,他还可以给管理bean的生命周期! spring的IOC有三种注入方式 : 第一是根据属性注入 也叫set方法注入: 第二种是根据构造方法进行注入: 第三种是根据注解进行注入,这种方式我认为比较好,方便,要是bean多的话,使用前两种方式会使得配置文件过于臃肿. Spri

Spring 实践 -IoC

Spring 实践 Spring简单介绍 Spring是分层的JavaSE/EE Full-Stack轻量级开源框架.以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核, 代替EJB的臃肿/低效/脱离现实. 主页http://spring.io/ IoC与DI IOC: 即控制反转, 解决程序对象紧密耦合问题(方式: 工厂+反射+配置文件), 将程序中原来构造对象的操作,交给IoC容器, 当程序真正须要

控制反转IOC与依赖注入DI - 理论篇

学无止境,精益求精 十年河东十年河西,莫欺少年穷 昨天是五一小长假归来上班的第一天,身体疲劳,毫无工作热情.于是就看看新闻,喝喝茶,荒废了一天 也就在昨天,康美同事张晶童鞋让我学习下IOC的理论及实现,毕竟是之前的好同事,好朋友,我也就抽时间百度了很多资料 在查阅网上资料的过程中,我发现大多技术篇幅都是IOC的代码实现,并没有一篇介绍IOC理论的篇幅!这显然不是我想要的. 我知道要想搞明白IOC,就必须要弄明白什么是IOC(控制反转)?为什么叫IOC(控制反转)?为什么之后又可以称为DI(依赖注

Spring+IOC(DI)+AOP概念及优缺点

Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类. 容器:Spring是个容器,因为它包含并且管理应用对象的生命周期和配置.如对象的创建.销毁.回调等. 框架:Spring作为一个框架,提供了一些基础功能,(如事务管理,持久层集成等),使开发人员更专注于开发应用逻辑. Spring的优点1.降低了组件之间的耦合性 ,

Spring -- IOC/DI 基础概念的理解

Spring -- IOC/DI 基础概念 思维导图: ------------------------------------------------------- IoC/DI 的基本概念 IoC是什么 ? IoC -- Inversion of control, 控制反转   在Java开发中,IoC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制.IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则. 理解IoC的关键是明