Java的声明性(基于注释的)缓存解决方案

时间:2011-08-18 15:39:54

标签: java caching annotations ehcache declarative

除了Spring 3.1ehcache-spring-annotations之外,我们还有除EhCache和Spring之外的其他选择吗?

1 个答案:

答案 0 :(得分:0)

您是否看过基于Spring-AOP的解决方案?您可以使用 org.springframework.aop.support.RegexpMethodPointcutAdvisor 在Spring applicationContext中创建自动代理对象,然后创建一个实现 AfterReturningAdvice,ThrowsAdvice MethodBeforeAdvice

使用该对象监视函数调用和退出并缓存所需的信息。

<bean name="cacheHandler" class="org.yourname.CachingInterceptor" />
<bean id="cacheAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
  <property name="advice" ref="cacheHandler" />
  <property name="pattern" value="org.yourname.regex.of.stuff.you.want.cached.*" />
</bean>
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />