springmodules缓存问题请教

aspirerME 2010-04-13 12:07:47
DAO接口

interface TestDAO {
find();
}

Test1Impl,Test2Impl实现了TestDAO

业务层通过TestDAO.find调用,根据不同的业务注入相应的Test1Impl或者Test2Impl。

问题来了

//这个缓存部分配置片段,可以说明问题了,如果如下配置

<bean id="cachingInterceptor"
class="org.springmodules.cache.interceptor.caching.MethodMapCachingInterceptor">
<property name="cacheProviderFacade" ref="cacheProviderFacade" />
<property name="cachingModels">
<props>
<prop key="test.TestDAO.find*">cacheName=systemCache</prop>
</props>
</property>
</bean>

缓存有效,但有问题就是比如第一次是注入Test1Impl,结果被缓存,第二次是注入Test2Impl,ehcache无法分辨没有执行查询,就返回的缓存结果,显然是错误的。

但如果如下配置
<bean id="cachingInterceptor"
class="org.springmodules.cache.interceptor.caching.MethodMapCachingInterceptor">
<property name="cacheProviderFacade" ref="cacheProviderFacade" />
<property name="cachingModels">
<props>
<prop key="test.Test1Impl.find*">cacheName=systemCache</prop>
<prop key="test.Test2Impl.find*">cacheName=systemCache</prop>
</props>
</property>
</bean>

缓存就失败,因为声明是Test1Impl.find 而调用是TestDAO.find

//////////////

如果声明为两个接口可以解决此问题,但不够优雅。请问基于上面的模式只声明一个接口,但有多个实现,怎么配置缓存配置文件。望专家不吝赐教。
...全文
110 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yueweiac110 2010-04-13
  • 打赏
  • 举报
回复
帮顶
回复内容太短了!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧