使用AOP整合redis的目的主要是考虑它是使用添加注解的方式做到redis的增删查改,对已有代码可以无缝式侵入,样子如下面这个片断
@GetFromRedis(key = RedisBusinessConstant.BASIC_SITE_CACHE_NAME, cacheType = ReadCacheType.Maps, mapKeymethodName=”getSiteId”,classType = BasicSiteVO.class)
@SuppressWarnings({ “rawtypes”, “unchecked” })
@Override
public List querySiteList() throws DaoException {
List list=null;
List obj=queryForList(“BasicSiteVO.querySiteAll”);
if(obj!=null&&obj.size()>0){
list=(List)obj;
}
return list;
}
在以前的方法上面加上AOP注解就可以了,是不是挺方便,不会破坏原有代码。
1、定义查询的注解类
(1)查:GetFromRedis
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)//修饰的注解表示该注解只能用来修饰在方法上
public @interface GetFromRedis { //定义个一注解@GetFromRedis,用RetentionPolicy.RUNTIME修饰;
// 缓存的key的命名空间,如果注解中有一个属性名字叫value,则在应用时可以省略属性名字不写。
String key();
//缓存字段,一般用来指定hashmap的key
String fieldKey() default “”;
//缓存类型
ReadCacheType cacheType();
//用于list对象中获取mapkey的方法
String mapKeymethodName() default “”;
//返回对象类型
Class