码迷,mamicode.com
首页 > 其他好文 > 详细

容器的IOC应用

时间:2015-06-09 23:41:53      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

1、IOC概念

  IOC全称Inversion of Control,被译为控制反转;

  IOC是指程序中的对象获取方式发生反转,有最初的new方式创建,转换为由第三框架创建、注入。第三框架一般是通过配置方式指定注入哪一个具体实现,从而降低了对象之间的耦合度

  IOC按实现方法不同,可以分为依赖注入DI和依赖查找两种

  Spring容器是采用DI方式实现了IOC控制,IOC是Spring框架的基础和核心;

  DI全称是Dependency Injection,被译为依赖注入;

  DI的基本原理就是将一起工作具有关系的对象,通过构造方法参数或方法参数传入建立关联,因此容器的工作就是创建bean时注入那些依赖关系

2、Setter注入

  通过调用无参构造器或无参static工厂方法实例化bean之后,调用bean的setter方法,即可实现setter方式注入。

    public class JDBCDataSource{

      private String driver;

      public void setDriver(String driver){

        try{//注册数据库驱动

          Class.foeName(driver);

          this.driver=driver;

        }catch(Exception e){

          throw new RuntimeException(e);

        }

      }

      //其他代码

    }

  在容器xml配制中,配置注入参数。

  <bean id="" class="">

    <property name="" value=""/>

    <property name="" value=""/>

    .......

  </bean>

3、构造器注入

  基于构造器的注入是通过调用带参数的构造器来实现的,容器在Bean被实例化的时候,根据参数类型执行相应的构造器。

    public class OracleUserDAO implements UserDAO{

        private JDBCDataSource dateSource;

        publica OracleUserDAO(JDBCDataSource dataSource){

          this.dataSource = dataSource;

        }

        //其他代码。。。 。。。

    }

  根据构造参数索引指定注入

  <bean id="dataSource" class="org.tarena.dao.JDBCDataSouurce">

    <property name="" value=""/>

  </bean>

  <bean id="userDAO" calss="" >

    <constructor-argindex="0" ref="dataSource"/>

  </bean>

4、自动装配(属性值见图示)

  配置示例

  <bean id="userDAO" class="">

    <constructor-argindex="0" ref="dataSource"/>

  </bean>

  <bean id="userService" class=""   autowire="byType"/>

  上述配置,在UserService中如果存在接受UserDAO类型的方法Setter方法,Spring就可以自动将userDAO对象注入进去

容器的IOC应用

标签:

原文地址:http://www.cnblogs.com/Crow00/p/4564829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!