Springboot自定义注解封装缓存操作

通常,我们为了避免频繁的查询访问数据库或者第三方接口,会把查询结果缓存到redis或者memcached之类的nosql数据库中,避免数据库或者网络开销过大导致程序效率太低或者雪崩效应,但是代码中频繁的操作缓存,会让代码过于冗长,可以通过自定义注解的方式封装缓存的操作,使代码更简洁,话不多说,直接上代码:

1.先定义注解@EnableCacheService

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface EnableCacheService {
   
   
    /**
     * key前缀 
     */
	String keyPrefix();
    /**
     * key主体,spel表示,例:#id(取形参中id的值)
     */
    String fieldKey();
    /**
     * 过期时间 
     */
    int expireTime() default 3600;
    
    TimeUnit timeUnit() default TimeUnit.SECONDS;
    
    CacheOperation cacheOperation();
    
    /**
    * 缓存操作类型
    */
    enum CacheOperation {
   
   
        QUERY, // 查询
        UPDATE, // 修改
        DELETE;  // 删除
    }
}

2.切面处理类

/**
 * EnableRedisService 注解切面处理
 * @author: Iffie
 * @date: 2018年9月29日
 */
@Aspect
@Component
@Slf4j
@SuppressWarnings("all")
public class CacheServiceAspect {
   
   

    @Pointcut("@annotation(com.iffie.core.EnableCacheService)")
    public void dealCacheServiceCut(){
   
   }
    
    @Autowired
    private RedisTemplate redisTemplate;

    @Around(value = "dealCacheServiceCut()")
    @SuppressWarnings
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值