搞定用Spring AOP实现的缓存

        Spring使用术语一个对象的 advisor来表示一个方面,包含一个通知和一个指定特定连接点的切入点。 各种通知类型有MethodInterceptor (来自AOP联盟的拦截器API)和定义在org.springframework.aop包中的 通知接口。所有通知必须实现org.aopalliance.aop.Advice标签接口。 Spring-framework-1.1.2以上支持取出就可使用的通知有 MethodInterceptorThrowsAdviceBeforeAdvice AfterReturningAdvice。奇怪的是Spring-framework-1.1.1竟然有MethodAfterReturningAdvice通知,为什么到1.1.2就去掉该通知了呢?不懂,郁闷阿!!
    偶使用实现MethodInterceptor,InitializingBean接口的MethodCacheInterceptor类来作为方法处理结果拦截器,结合ehcache来做缓存。例如偶把业务服务类中的一个方法public List getAllOrganizations()的结果集使用MethodCacheInterceptor拦截后缓存起来。然后在此业务服务类中对缓存的对象有影响的其它方法,比如createOrganization(Organization org),updateOrganization(Organization org),removeOrganization(Organization org),使用实现AfterReturningAdvice,InitializingBean接口的MethodCacheAfterAdvice通知来做为方法执行后的缓存刷新和清理的拦截器。这样,在偶的业务服务类里面起码不会像号称使用AOP实现缓存的 JdonFramework 框架中其例子中的业务服务类( create a User Model )里面象clearCache()此等和缓存相关的操作处处可见。
   TODO: 
 * MethodCacheAfterAdvice目前只支持方法参数或者方法返回值为继承Entity  
   POJO对象的拦截<br>
 * 缓存key的判断和处理,目前是以<code>getAll***s()</code>硬编码<br>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值