• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
斑駁_光影
                              Keep Hunger     Keep Foolish
博客园    首页    新随笔    联系   管理    订阅  订阅

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框架根据这些注解所提供信息将这些对象组装后,交给客户端对象使用。

 

posted @ 2012-07-14 15:14  斑驳_光影  阅读(1737)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3