2

SqlMapClientDaoSupportを拡張するDAOクラスがいくつかあり、getSqlMapClientTemplate()iBatisクエリを実行するために呼び出します。

getSqlMapClientTemplate()特定のテストでは、各DAOが呼び出されたときに返されるオブジェクトを、独自のカスタムクラスに置き換えたいと思います。

これどうやってするの?

私はあることを知っていsetSqlMapClientTemplate( org.springframework.orm.ibatis.SqlMapClientTemplate )ます; ただし、これには2つの問題があります。

1)Spring構成に対して「グローバル」な置換を希望します。各DAOでsetを呼び出す必要はありません。

2)そのセッターはSqlMapClientTemplate、インターフェイスのSqlMapClientTemplate実装( )ではなく、取得するため、'SqlMapClientOperationのインターフェイスの独自の実装を作成するのではなく、SqlMapClientOperationsサブクラス化する必要があるように見えます。SqlMapClientTemplate

SqlMapClientTemplate特定のSpring構成で、へのすべての呼び出しから返されたものをグローバルに置き換えるにはどうすればよいgetSqlMapClientTemplate()ですか?

ありがとう。

4

2 に答える 2

2

ある種の AOP を使用するか、コンテキスト内のすべての Bean 定義で抽象的な定義を拡張します。

<bean id="baseDao" abstract="true">
    <property name="sqlMapClientTemplate" ref="yourNewClientTemplate"/>
</bean>

<bean id="specificDao" class="com.companyname.class" parent="baseDao" >
...
</bean>
于 2009-07-09T20:50:43.803 に答える
0

ここのこの項目は、同様の質問について説明しています。SqlMapClientOperations をパラメーターとして受け取るように DAO を書き直しました。これにより、より簡単で簡単なテストが可能になりますが、提供されたリンクのように Mockito を使用できます。

于 2010-08-30T13:57:22.863 に答える