Aspect-Cache-Plug 介绍
Aspect-Cache-Plug
先介绍缓存使用下场景
对同一请求(针对不同请求参数)进行缓存,可以减少服务器压力、加快响应速度
查询接口:根据请求条件对返回结果进行缓存
更新接口:根据条件对指定缓存进行清除
@Aspect(key = "query") public Object query(String q) { // do something return null; } @Aspect(key = "update") public Object update(String q) { // do something return null; }
缓存query方法返回值
<bean class="com.aspect.config.CacheConfig"> <property name="key" value="query"/> <property name="space" value="space2"/> <property name="keyExpression"> <value>this[0]+new java.util.Date()</value> </property> <property name="timeout" value="60"/> </bean>
执行update时清除query的返回结果
<bean class="com.aspect.config.ClearConfig"> <property name="key" value="update"/> <property name="cachedConfigs"> <list> <value>query</value> </list> </property> </bean>
加入spring支持
<aop:config> <aop:pointcut id="adviceAspectPoint" expression="execution(* com.sample..*.*(..)) and @annotation(Aspect)" /> <aop:aspect ref="adviceAspect"> <aop:around method="execute" pointcut-ref="adviceAspectPoint" arg-names="Aspect" /> </aop:aspect> </aop:config> <bean id="adviceAspect" class="com.aspect.AdviceAspect"> <property name="rootKey" value="aspect.cache."/> <property name="cache" ref="cache"/> <property name="caches"> <list> <bean class="com.aspect.config.CacheConfig"> <property name="key" value="queryMethod1"/> <property name="space" value="space1"/> <property name="keyExpression"> <value>this[1]+"."+this[2]</value> </property> <property name="domainExpression"> <value>this[0]</value> </property> <property name="timeout" value="60"/> </bean> <bean class="com.aspect.config.CacheConfig"> <property name="key" value="queryMethod2"/> <property name="space" value="space1"/> <property name="keyExpression"> <value>this[0]</value> </property> <property name="timeout" value="60"/> </bean> <bean class="com.aspect.config.CacheConfig"> <property name="key" value="space2QueryMethod1"/> <property name="space" value="space2"/> <property name="keyExpression"> <value>this[0]+new java.util.Date()</value> </property> <property name="timeout" value="60"/> </bean> </list> </property> <property name="clears"> <list> <bean class="com.aspect.config.ClearConfig"> <property name="key" value="updateMethod1"/> <property name="domainExpression"> <value>this[0]</value> </property> <property name="cachedConfigs"> <list> <value>queryMethod1</value> <value>space2QueryMethod1</value> </list> </property> </bean> </list> </property> </bean>
Aspect-Cache-Plug 官网
https://github.com/yuxiangping/aspect-cache-plug
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。