spring IoC学习 ------IoC基本概念

  IoC(Inversion of Control )中文翻译为控制反转,指的是在创建对象这个动作不由程序发动,而是由别的程序进行注入,在没有使用IoC之前,我们构造对象方法大概有一下几种:

      1)使用new关键字进行对象构造。

      2)使用J2EE的service-Location解决直接的依赖耦合关系。

  

  spring  Ioc的注入方法:

      1)构造方法注入:在被注入对象可以通过在其构造方法中声明依赖对象的参数列表,让外部IoC容器知道它需要依赖哪些对象。

      2) setter 方法注入: 当前对象只要为其依赖对象所对应的属性添加setter方法,就可以通过setter方法将相应的依赖对象设置到被注入对象中。

      3)接口注入:被注入对象如果想要IoC为其注入对象,就必须实现某个接口,这个接口提供一个方法,用来为其注入依赖对象。

  三种注入方法的比较:

      1)接口注入:不提倡,因为它强制被注入的对象实现不必要的接口,导游侵入性。

       2)构造方法注入:优点:对象构造完成之后,即进入就绪状态,可以马上使用。

               缺点:当依赖对象比较多的时候,构造方法的参数列表会比较长,通过反射构造对象时,对相同类型的参数的处理比较困难,维护和使用也比较麻烦。

         3)setter方法注入:由于方法可以命名,所以setter方法注入在描述性上要比构造方法注入好一些。

        综上所述构造方法注入和setter方法注入因为其侵入性较弱,且易于理解和使用,所以是现在使用最多的注入方式,而接口注入因为侵入性较强,不提倡使用。

  IoC优点: 

      不会对业务对象构成很强的侵入性,使用IoC之后,对象具有更好的客车实行,可重用性和可扩展性。

  IoC Service Provider 对象管理:

      需要解决的问题:知道自己说管理和掌握的被注入对象和依赖对象之间的对应关系。

       IoC产品使用注册对象管理信息的方法如下:

      1)直接编码方式:spring,PicoContainer,Aralon都支持这种方式,在容器启动之前,我们就可以通过程序编码将被注入对象注册到容器中,并明确它们相互之间的依赖关系。

       2)配置文件方式:最为常见的是以xml文件来管理对象注册和对象间依赖关系,Spring IoC容器和PicoContainer都是采用这种方式。

       3)元数据方式:使用java5和Guice框架实现的,直接在类中使用元数据信息来标注各个对象之间的依赖关系,然后由Guice框架根据这些注解所提供信息将这些对象组装后,交给客户端对象使用。

 

转载于:https://www.cnblogs.com/Qbright/archive/2012/07/14/2591454.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值