SqlMapClientDaoSupport를 확장하는 여러 DAO 클래스가 있으며 iBatis 쿼리를 실행하려면 getSqlMapClientTemplate()
을 호출하십시오.Spring : 모든 클라이언트에 대해 SqlMapClientTemplate을 대체 하시겠습니까?
특정 테스트에서는 각 DAO가 getSqlMapClientTemplate()
을 호출 할 때 반환되는 개체를 내 자신의 사용자 지정 클래스로 바꿔야합니다.
어떻게하면됩니까?
나는 setSqlMapClientTemplate(org.springframework.orm.ibatis.SqlMapClientTemplate)
가 있다는 것을 알고있다. 그러나 이것은 두 가지 문제점을 제시합니다.
1) 스프링 구성에 대한 교체가 "전역"으로 유지되기를 바랍니다. 각 DAO에서 세트를 호출하고 싶지 않습니다. 그것이 내가 바로 'SqlMapClientOperation의 인터페이스 내 자신의 구현을 만들기보다는 SqlMapClientTemplate
를 서브 클래 싱해야하는 경우로 보인다 있도록
2) 그 세터는, 인터페이스 SqlMapClientTemplate
구현 (SqlMapClientOperations
)보다는 SqlMapClientTemplate
걸립니다.
특정 스프링 구성의 경우 모든 호출에서 반환 된 SqlMapClientTemplate
을 어떻게 전체적으로 getSqlMapClientTemplate()
으로 바꿀 수 있습니까?
감사합니다.
<bean id="baseDao" abstract="true">
<property name="sqlMapClientTemplate" ref="yourNewClientTemplate"/>
</bean>
<bean id="specificDao" class="com.companyname.class" parent="baseDao" >
...
</bean>
나는 추상적 인 정의 방식이 최선이라고 생각한다. 나는 AOP 접근법이이 경우에 효과가 있을지 확신하지 못한다. 이것은 향상된 객체가 다른 객체에 주입 될 때만 작동하고 내부'this' 메소드 호출을 위해 작동하지 않습니다. 그것이 여분의 일없이. – laz