Spring控制反转的最简单说明

现有角色如下:

一个接口Interface,两个接口实现类InstatnceA、InstanceB,一个调用类User。

已有代码如下:

User类中实例化了一个InstatnceA对象,代码如:Interface interface = new InstanceA();

现欲修改如下:

现在想把实例化对象改为InstatnceB而不要实例化InstanceA了,为此我们需要修改代码为:Interface interface = new InstanceB();

现在的控制是:

User控制实例化哪个类(是实例化InstanceA还是InstanceB)。

控制反转:

当前代码要改变实例化的类,都得到User类中修改代码;控制反转就是要改造成具体实例化的类不由User类决定而由其他地方决定。

spring的处理方式如下:

加入一个中间类Middle该类有Interface的get/set方法,然后真正该类注册到beans.xml,注册代码中会指定Middle调用set方法时实例化成的类。

User类想获取实例化对像通过调用Middle的get方法获取,而该对象其实是set方法实例化的。

时间: 2024-11-09 07:38:51

Spring控制反转的最简单说明的相关文章

spring——控制反转简单例子

spring框架是一个开源的轻量级的基于IOC与AOP核心技术的容器框架,主要是解决企业的复杂操作实现. 那IOC与AOP,到底如何解释呢,在看spring视频中,两个专业术语一定必须要懂得. IOC:inverse of Control:控制反转.意思是程序中的之间的关系,不用代码控制,而完全是由容器来控制.在运行阶段,容器会根据配置信息直接把他们的关系注入到组件中.同样,这也是依赖注入的含义.依赖注入和控制反转其实是一个概念.只不过强调的不同而已,依赖注入强调关系的注入是由容器在运行时完成,

Spring 控制反转

具体内容 Spring 开发框架之中有几个概念DI&IOC.AOP.那么要想理解Spring就必须首先理解控制反转的核心意义是什么? 对于IOC来讲如果直接进行文字的描述,听起来会很麻烦.下面直接通过一套具体案例来分析什么IOC的核心本质. IOC分析场景 实际上这样的操作过程就属于最初的开发阶段模式.如果换到程序的开发之中,那么可能最直白的做法就相当于是使用new来进行对象的产生. package cn.wnh.service; public interface IMessageService

对spring控制反转以及依赖注入的理解

一.说到依赖注入(控制反转),先要理解什么是依赖. Spring 把相互协作的关系称为依赖关系.假如 A 组件调用了 B 组件的方法,我们可称A 组件依赖于 B 组件. 二.什么是依赖注入. 在传统的程序设计过程中,通常由调用者来创建被调用者的实例. 在依赖注入的模式下,创建被调用者的工作不再由调用者来完成,因此称为控制反转:创建被调用者实例的工作通常由Spring 容器来完成,然后注入给调用者,因此也称为依赖注入. 自己理解:即一句话,由spring容器来控制组件A的调用的具体对象B.组件A依

Spring控制反转(IOC)和依赖注入(DI),再记不住就去出家!

每次看完spring的东西感觉都理解了,但是过了一段时间就忘,可能是不常用吧,也是没理解好,这次记下来. 拿ssh框架中的action,service,dao这三层举例: 控制反转:完成一个更新用户信息的业务操作,首先在action中需要service对象来处理逻辑操作,但是在action中我们并没有进行类似new Service()的操作,因为spring容器已经帮我们完成了这 样的创建被调用者对象的工作,因此称为控制翻转.这样命名这个技术可能还是有点晦涩,参考 http://blog.csd

spring——控制反转

像前面博客中提到struts框架,Hibernate框架似的,spring同样也是一个开源的框架.使用框架的的优势在于分层结构,每层有相应的框架,减少开发工作量,减少组件之间的耦合.struts框架应用web层,Hibernate框架应用持久层,spring应用两者之间. 我觉得,框架是出于聪明的赖人之手.聪明是说他们开发封装每层框架,把复杂的操作全部封装在框架中.而赖人是说他所有复杂的操作实现全部交给计算机来实现,减少人们的开发工作量,把工作的注意力集中在业务逻辑上. 那我们来介绍一下stru

Spring控制反转(IOC)

SpringIOC Spring的控制反转:把对象的创建.初始化.销毁等工作交给spring容器来做.由spring容器控制对象的生命周期. 步骤:两个步骤,步骤1有两个加载配置文件形式,通过加载配置文件实例化容器 IOC面向接口的强大 Spring容器内部对象 创建对象的方式 无参构造函数 <bean id="personService" class="cn.itcast.bean.impl.PersonServiceImpl"/> 静态工厂 工厂方法

Spring控制反转IOC

spring的控制反转(IOC)思想,对象实例不再是由调用者来创建,改为spring容器来创建.spring容器会负责控制程序之间的关系,不再由程序代码直接控制,控制权由应用的代码转向了外部容器,所谓控制反转.spring有两个ioc容器,这里我用的是ApplicationContext. 以一个类为例: public class UserService { public void addUser() { System.out.println("user add"); } } 在xml

尚学堂Spring视频教程(二):Spring控制反转

用Spring来实现IOC 在上节中我们自定义了一个接口BeanFactory和类ClassPathXmlApplicationContext来模拟Spring,其实它们在Spring中确实是存在的,下面我们具体来看看Spring的控制反转是如何操作的 其他代码一样,只是配置文件和单元测试的代码有点不同,注意引用其他bean配置的是"ref"属性 <?xml version="1.0" encoding="UTF-8"?> <b

Spring控制反转和依赖注入

(1)为什么使用控制反转和依赖注入 调用者不用去关心被调用者的实现,不需要调用者亲自创建被调用者的实例,这些操作都交给框架去完成. 这种设计思想就是控制反转(Inversion of Control, IoC),同时,它还有另外一个名字就是依赖注入(Dependency Injection, DI). (2)什么是控制反转和依赖注入 控制反转(IoC)是将由程序控制的"对象间的依赖关系"转交给IoC容器来进行控制,被调用者的实例创建工作不再由调用者来完 成.通过控制反转,可以实现由外部