У меня есть несколько классов DAO, которые расширяют SqlMapClientDaoSupport и вызывают getSqlMapClientTemplate()
для запуска запросов iBatis.Весна: заменить SqlMapClientTemplate для всех клиентов?
Для конкретного теста я хочу заменить возвращаемый объект, когда каждый DAO вызывает getSqlMapClientTemplate()
, с моим собственным пользовательским классом.
Как я могу это сделать?
Я знаю, что есть setSqlMapClientTemplate(org.springframework.orm.ibatis.SqlMapClientTemplate)
; однако это создает две проблемы.
1) Я хочу, чтобы замена была «глобальной» для моей конфигурации Spring; Я не хочу, чтобы вы звонили в каждый DAO.
2), что сеттер принимает SqlMapClientTemplate
вместо интерфейса SqlMapClientTemplate
орудий (SqlMapClientOperations
), так это выглядит, как будто мне нужно подкласс SqlMapClientTemplate
, а не просто делать свою собственную реализацию интерфейса «SqlMapClientOperation в.
Как для конкретной конфигурации пружин я могу во всем мире заменить SqlMapClientTemplate
, возвращенный из всех вызовов, на getSqlMapClientTemplate()
?
Спасибо.
Я думаю, что подход абстрактного определения является лучшим. Я не уверен, что подход AOP будет работать в этом случае. Он работает только тогда, когда расширенный объект вводится в другой объект, а не для внутренних вызовов этого метода. Без дополнительной работы. – laz