缓存知多少?详解@Cacheable@CacheEvict@Caching

一.基础概念

1.Cache介绍

在这里插入图片描述

2.@Cacheable/@CachePut/@CacheEvict)的主要参数

在这里插入图片描述

二.@Cacheable使用demo

//value 等价于 cacheNames
 @Cacheable(cacheNames = "'getString'", key = "'d'")
    public String getString() {
        return "aaa";
    }

三.@CacheEvict使用demo

 @CacheEvict(value = "'getString'", key = "'d'")
    public String cleanString() {
        return "bb";
    }
    

四.@Caching使用demo

Caching注解是Cacheable、CachePut、CacheEvict的组合注解

public @interface Caching {
//多个缓存
	Cacheable[] cacheable() default {};
//多个
	CachePut[] put() default {};
//多个清缓存操作
	CacheEvict[] evict() default {};

}

 @Caching(evict={@CacheEvict(value = "add", key = "'getAdd' + #so.positionId"),
            @CacheEvict(value = "add", key = "'updateAdd' + #so.positionId")})      
    public void add(Add so) {
    //do something 
    }
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页