代码之家  ›  专栏  ›  技术社区  ›  tpdi

Spring:是否为所有客户端替换SqlMapClientTemplate?

  •  1
  • tpdi  · 技术社区  · 16 年前

    getSqlMapClientTemplate() 运行iBatis查询。

    对于特定的测试,我希望替换每个DAO调用时返回的对象 ,使用我自己的自定义类。

    我该怎么做?

    我知道有一个 setSqlMapClientTemplate( org.springframework.orm.ibatis.SqlMapClientTemplate ) ; 然而,这带来了两个问题。

    1) 我希望更换是“全球”我的弹簧配置;我不想在每个DAO上都调用set。

    SqlMapClientTemplate 而不是界面 SqlMapClientTemplate 工具( SqlMapClientOperations ),所以看起来我需要子类化 SqlMapClientTemplate

    对于特定的Spring配置,如何全局替换 SqlMapClientTemplate 从所有呼叫返回到 ?

    谢谢

    2 回复  |  直到 16 年前
        1
  •  2
  •   matt b    16 年前

    要么使用某种AOP,要么让上下文中的所有bean定义扩展一个抽象定义:

    <bean id="baseDao" abstract="true">
        <property name="sqlMapClientTemplate" ref="yourNewClientTemplate"/>
    </bean>
    
    <bean id="specificDao" class="com.companyname.class" parent="baseDao" >
    ...
    </bean>
    
        2
  •  0
  •   Community Mohan Dere    9 年前

    This item here 重复一个类似的问题。我重写了DAO,将SqlMapClientOperations作为一个参数,这使得测试更简单、更直接,但是您可以像提供的链接中那样使用Mockito。

    推荐文章