Spring反转控制(IOC)和依赖注入(DI)

原创 2015年11月19日 00:04:15

控制反转(Inversion of Control ,Ioc) 

      我认为所谓反转控制(IOC),就是在编程过程中开发人员常说的“实现必须依赖抽象,而不是抽象以来实现”,这就是从变现形式上对反转控制的一种解释。从工作模式上说,无需在代码中创建被调用者,而是交给外部容器去进行初始化,原来初始化被调用者的过程掌握在自己手中,而现在却掌握在外部容器里。

依赖注入(Dependency Injection)

      所谓依赖注入的过程就是初始化的过程,这是spring的容器功能,在实现类中不需要对被调用者初始化的实现,我在开发中常用的方法有setter注入(setter injection)、构造注入(constructor injection),此外还有接口注入(interface injection)。

1  、 setter注入(setter injection)

            setter注入就是在接受注入的类中添加被调用者的setter方法。然后在配置文件中通过添加setter方法实现注入:

.....

public class UserService{

    private userDao;

   .......

   public void setUserDao( UserDao userDao){

           this.userDao=userDao;

     }

}

通过Spring.xml的property标签来获取setter方法并把userDao注入给他:

<bean  id = "us" class="com.hp.service.UserService">

<property name="userDao" ref="ud">

<bean>


2、构造注入(constructor injection)

   构造注入就是在接收注入的类中定义一个构造方法,把被调用对象作为参数传入的一种方式:

.....

public class UserService{

    private userDao;

    public UserService(UserDao userDao){

         super();

         this.userDao=userDao;

   }

}


通过Spring.xml的constructor-arg标签来把userDao注入给他:

<bean  id = "us" class="com.hp.service.UserService">

<constructor-arg><ref bean="ud"/> </constructor-arg>

<bean>

3、接口注入(interface injection)

   接口注入指的就是在接口中定义要注入的信息,并通过接口完成注入,开发中较少用到。


这样通过ioc,可以利用setter 、constructor来实现自己的对象与对象之间的依赖关系实现DI,减少了程序的复写,降低组件之间的耦合度,实现软件各层之间的解耦。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用反射简单模拟Spring的控制反转(Ioc)和依赖注入(DI)

利用反射简单模拟Spring的控制反转(Ioc)和依赖注入(DI) 1.配置文件(.properties)中配置要扫描的包: #扫描page对象的包 init.pageobj.Package = e...

Spring——DI(依赖注入)/Ioc(控制反转)

DI(Dependency Injection):依赖注入     在运行期间,由外部容器动态地将依赖对象注入到组件中; Ioc(Inversion of control):控制反转     应用本身...

Spring的IOC(控制反转)和 DI(依赖注入)机制

控制反转:就是将生成实现类放入IOC容器中进行统一管理,这样,我们可以对生成对象进行集中控制,实现高内聚低耦合。 IOC容器控制方式: 一、准备配置文件:就像前边HelloWorld配置文件一样...

Spring控制反转与依赖注入(IOC && DI)

首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系...

Helloworld之Spring依赖注入/控制反转(DI/IoC)版

Helloworld之Spring依赖注入/控制反转(DI/IoC)版 作者:雨水, 日期:2014-10-29 摘要:本文主要用于培训初学者理解Spring中的依赖注入的基本概念. ...
  • gobitan
  • gobitan
  • 2014年10月29日 11:47
  • 1870

Spring容器的控制反转(IOC)和依赖注入(DI)

一、spring的控制反转1.什么叫spring的控制反转(Spring_IOC)?简单通俗一点的说,就是把对象的创建,初始化,销毁等一系列工作交给spring去做,由spring控制对象的生命周期二...

Spring 控制反转(IoC)容器与依赖注入(DI)

一、相关概念 1.容器:管理对象的生命周期(包括对象创建、对象的调用,对象的销毁)管理器,处理对象与对象之间的关系 2.容器提供的服务  *对象生命周期的管理  *对象依赖和配置管理  *对...

【JavaWeb-23】spring、IoC控制反转和DI依赖注入入门、基于XML的Bean装配、基于注解的Bean装配

1、spring是一个轻量级的容器(工厂),主要管理对象的(bean)。spring它比较重要,是因为它涉及的范围比较多,甚至可取代struts2来管理web层(springMVC),也甚至可以取代H...

Spring-IOC(控制反转)+DI(依赖注入)

Bromon的blog上对IoC与DI浅显易懂的讲解 2.1、IoC(控制反转)  首先想说说IoC(Inversion of Control,控制反转)。这是spring的核心,贯穿始终。所谓Io...

Spring 深入理解IOC(控制反转)和DI(依赖注入)

我们经常会听说IOC,也就是Inversion of Controller,控制反转。事实上,IOC并不是一个新鲜的概念,最早可能是在1988年,由Ralph E. Johnson和Brian Foo...
  • eaphyy
  • eaphyy
  • 2017年05月30日 18:05
  • 166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring反转控制(IOC)和依赖注入(DI)
举报原因:
原因补充:

(最多只允许输入30个字)