Spring Cache 兩個需求

  • 緩存失效時間支持在方法的注解上指定
    Spring Cache默認是不支持在@Cacheable上添加過期時間的,可以在配置緩存容器時統一指定:

@Beanpublic CacheManager cacheManager(        @SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {    CustomizedRedisCacheManager cacheManager= new CustomizedRedisCacheManager(redisTemplate);
    cacheManager.setDefaultExpiration(60);    Map<String,Long> expiresMap=new HashMap<>();
    expiresMap.put("Product",5L);
    cacheManager.setExpires(expiresMap);    return cacheManager;
}

想這樣配置過期時間,焦點在value的格式上Product#5#2,詳情下面會詳細說明。

    @Cacheable(value = {"Product#5#2"},key ="#id")

上面兩種各有利弊,并不是說哪一種一定要比另外一種強,根據自己項目的實際情況選擇。