redis 注解方式-------Cacheable

@Service
public class cacheableServiceImpl implements cacheableService {
    /**
     * 方法无参时,默认的key为   SimpleKey []
     *
     * 注:前提条件是 不指定key属性,也无keyGenerator
     */
    @Cacheable(cacheNames = "TestKeySpace")
    @Override
    public void methodOne() {
        System.out.println("cha入");
    }
    /**
     * 方法只有一个参数时,默认的key为   传入的参数的toString结果
     * 如:调用此方法时,传入的传入的参数为 字符串paramA, 那么key就为paramA
     *
     * 注:前提条件是 不指定key属性,也无keyGenerator
     */
    @Cacheable(cacheNames = "TestKeySpace")
    @Override
    public void methodTwo(String chen) {
        System.out.println("cha入");
    }


    /**
     * 方法只有一个参数时,默认的key为    传入的参数的toString结果
     * 如:调用此方法时,传入的传如参数为 User对象, 那么就为以 User对象的toString结果作为key
     *
     * 注:前提条件是 不指定key属性,也无keyGenerator
     */
    @Cacheable(cacheNames = "TestKeySpace")
    @Override
    public User methodThree(User user) {
        System.out.println("cha入");
        return user;
    }




    @Cacheable(cacheNames = "TestKeySpace")
    @Override
    public void methodfour(Map objectObjectMap) {
        System.out.println("cha入");
    }

    /**
     * 说明一: 若主动设置了key属性,那么以主动设置的key属性值为准(无论是否注入有KeyGenerator)
     *
     * 说明二: 如果key为常量的话,需要再使用单引号''引起来
     *
     */
    @Cacheable(cacheNames = "TestKeySpace", key = "'i_am_key'")
    @Override
    public void methodfive(String dfdfdfdf) {
        System.out.println("cha入");
    }
    /**
     * 说明一: 若主动设置了key属性,那么以主动设置的key属性值为准(无论是否注入有KeyGenerator)
     *
     * 说明二: 我们也可以使用Spring Expression Language (SpEL)动态设置key的属性值,
     *        通过  【#形参名】 或 【#p参数索引】来动态获取传入的参数
     *
     *  如: 这里的 key = "#str" 等价于 key = "#p0" 等价于 key = "#a0"
     *      辅助理解:p即params ,   a 即 args
     */
    @Cacheable(cacheNames = "TestKeySpace", key = "#str")
    @Override
    public void methodSeven(String str) {
        System.out.println("cha入");
    }



    
    @Cacheable(cacheNames = "TestKeySpace", key = "#str.hashCode() + '*****' + #p1.name")
    @Override
    public void methodEight(String str, User user) {

    }


}

 

你可能感兴趣的:(redis)