• 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>

  • 相关阅读:
    弦图点染色问题
    BZOJ1098: [POI2007]办公楼biu
    BZOJ1097: [POI2007]旅游景点atr
    BZOJ1068: [SCOI2007]压缩
    BZOJ1055: [HAOI2008]玩具取名
    BZOJ4199: [Noi2015]品酒大会
    BZOJ2527: [Poi2011]Meteors
    BZOJ1493 [NOI2007]项链工厂
    BZOJ1095 ZJOI2007 Hide 捉迷藏
    bzoj1468 Tree
  • 原文地址:https://www.cnblogs.com/wcyBlog/p/3924585.html
Copyright © 2020-2023  润新知