Aspect-Cache-Plug,基于方法的切片缓存插件。
先介绍缓存使用下场景:
对同一请求(针对不同请求参数)进行缓存,可以减少服务器压力、加快响应速度
查询接口:根据请求条件对返回结果进行缓存更新接口:根据条件对指定缓存进行清除
@Aspect(key = "query")public Object query(Strig q) { // do somethig retur ull;}@Aspect(key = "update")public Object update(Strig q) { // do somethig retur ull;}缓存query方法返回值
<bea class="com.aspect.cofig.CacheCofig"> <property ame="key" value="query"/> <property ame="space" value="space2"/> <property ame="keyExpressio"> <value>this[0]+ew java.util.Date()</value> </property> <property ame="timeout" value="60"/></bea>执行update时清除query的返回结果
<bea class="com.aspect.cofig.ClearCofig"> <property ame="key" value="update"/> <property ame="cachedCofigs"> <list> <value>query</value> </list> </property></bea>加入sprig支持
<aop:cofig> <aop:poitcut id="adviceAspectPoit" expressio="executio(* com.sample..*.*(..)) ad @aotatio(Aspect)" /> <aop:aspect ref="adviceAspect"> <aop:aroud method="execute" poitcut-ref="adviceAspectPoit" arg-ames="Aspect" /> </aop:aspect> </aop:cofig> <bea id="adviceAspect" class="com.aspect.AdviceAspect"> <property ame="rootKey" value="aspect.cache."/> <property ame="cache" ref="cache"/> <property ame="caches"> <list> <bea class="com.aspect.cofig.CacheCofig"> <property ame="key" value="queryMethod1"/> <property ame="space" value="space1"/> <property ame="keyExpressio"> <value>this[1]+"."+this[2]</value> </property> <property ame="domaiExpressio"> <value>this[0]</value> </property> <property ame="timeout" value="60"/> </bea> <bea class="com.aspect.cofig.CacheCofig"> <property ame="key" value="queryMethod2"/> <property ame="space" value="space1"/> <property ame="keyExpressio"> <value>this[0]</value> </property> <property ame="timeout" value="60"/> </bea> <bea class="com.aspect.cofig.CacheCofig"> <property ame="key" value="space2QueryMethod1"/> <property ame="space" value="space2"/> <property ame="keyExpressio"> <value>this[0]+ew java.util.Date()</value> </property> <property ame="timeout" value="60"/> </bea> </list> </property> <property ame="clears"> <list> <bea class="com.aspect.cofig.ClearCofig"> <property ame="key" value="updateMethod1"/> <property ame="domaiExpressio"> <value>this[0]</value> </property> <property ame="cachedCofigs"> <list> <value>queryMethod1</value> <value>space2QueryMethod1</value> </list> </property> </bea> </list> </property> </bea>









评论