zoukankan      html  css  js  c++  java
  • ibaits与spring整合的心得

    Ibatis2.3与spring3.0整合,其要明确一下,Ibatis与Hibernate一样都是dao层链接数据库用的框架。它是一个轻量级的orm框架,比Hibernate更加灵活。

    sqlMapConfig是spring提供给它的核心类,它是线程安全的,是单例模式,其作用类似于Hibernate的SessionFactory类。该类的主要作用是读取ibatis的sqlMapConfig.xml文件,

    标记1:

    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

           <property name="configLocation">

               <value>WEB-INF/sqlMapConfig.xml</value>

           </property>

    </bean>

     

    而sqlMapConfig.xml是ibatis的总配置文件

    SqlMapClientFactoryBean,这个class实现了两个interface:FactoryBean和InitializingBean,InitializingBean只有一个方法afterPropertiesSet()  
    spring调用构造函数后,发现它实现了InitializingBean接口,所以还会调用afterPropertiesSet来进一步初始化此class。
    sqlMapClient 就是在这里面创建的。
    至此一个完整的工厂创建完成。

    FactoryBean接口主要方法就是public Object getObject();
    要知道SqlMapClientFactoryBean是一个工厂类,他的作用就是你需要的时候调用它的一个方法,它就会返回你一个你需要的对象。
    当然此处返回的就是一个sqlMapClient 对象。
    所以这里的getObject实现就是把sqlMapClient 返回给调用者。
    spring就是根据接口里的定义来调用getObject方法的,这样可以忽略到底是调用的那个对象的实例(也就是不关心调用的是哪个factory)。
    也不关心返回的是什么对象,spring只知道调用了getObject就可以得到此factory所创建的对象就够了。

     

     

    标记2

     

    <bean id="zjjyyxDao" class="com.cdc.capital.ibatis.dao.impl.ZjjyyxDaoImpl">

           <property name="dataSource">

               <ref bean="dataSource" />

           </property>

           <property name="sqlMapClient">

               <ref bean="sqlMapClient" />

           </property>

  • 相关阅读:
    UVA 10564
    ARM GCC CodeSourcery 下载地址
    Linux Shell编程入门
    设计模式------Adapter(适配器)
    设计模式------STRATEGY(策略模式)
    对象创建型模式------Singleton(单例模式)
    设计模式------PROTOTYPE(原型),TEMPLATE(模板)
    对象创建型模式------Builder(生成器或建造者模式)(2)
    对象创建型模式------工厂模式
    effective c++(07)之为多态基类声明virtual析构函数
  • 原文地址:https://www.cnblogs.com/wcyBlog/p/3924585.html
Copyright © 2011-2022 走看看