当前位置: 首页 > article >正文

springboot 使用注解设置缓存时效

springboot 使用注解设置缓存时效

import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.cache.RedisCache;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;

import java.time.Duration;

public class CustomRedisCacheManager extends RedisCacheManager {

    /*
     * @description 提供默认构造器
     * @author xianping
     * @date 2020/9/28 9:22
     * @param
     * @param cacheWriter
     * @param defaultCacheConfiguration
     * @return
     **/
    public CustomRedisCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) {
        super(cacheWriter, defaultCacheConfiguration);
    }

    /*
     * @description 重写父类createRedisCache方法
     * @author xianping
     * @date 2020/9/28 9:22
     * @param
     * @param name @Cacheable中的value
     * @param cacheConfig
     * @return org.springframework.data.redis.cache.RedisCache
     **/
    @Override
    protected RedisCache createRedisCache(String name, RedisCacheConfiguration cacheConfig) {
        //名称中存在#标记进行到期时间配置
        if (!name.isEmpty() && name.contains("#")) {
            String[] SPEL = name.split("#");

            if (StringUtils.isNumeric(SPEL[1])) {
                //配置缓存到期时间
                int cycle = Integer.parseInt(SPEL[1]);
                return super.createRedisCache(SPEL[0], cacheConfig.entryTtl(Duration.ofMinutes(cycle * 24 * 60)));
            }
        }
        return super.createRedisCache(name, cacheConfig);
    }
}

 @PostMapping("/getVehicleMap")
    @Cacheable(value = "getVehicle#1")
    @Operation(summary = "交通工具类型获取")
    public R<JSONArray> getVehicleMap() {

http://www.kler.cn/a/455114.html

相关文章:

  • Linux应用软件编程-多任务处理(进程)
  • Windows Powershell实战指南(未完成)
  • OCR实践-Table-Transformer
  • 软考-信息安全-网络安全体系与网络安全模型
  • UE(虚幻)学习(三) UnrealSharp插件中调用非托管DLL
  • 多个微服务 Mybatis 过程中出现了Invalid bound statement (not found)的特殊问题
  • 自然语言处理(NLP)中的事件检测和事件抽取
  • React性能优化:构建更高效的应用
  • AIDD -人工智能药物设计-RDKit | 基于不同描述符和指纹的机器学习模型预测logP
  • pyqt和pycharm环境搭建
  • 【Python】‌数据库工具类,使用python连接sql server数据库
  • 12.13[java exp4][debug]nginx 500,究极未解之谜,出自重启,解决自重启,迷???
  • 【微信小程序】页面跳转基础 | 我的咖啡店-综合实训
  • 猛将:无我
  • 2025:OpenAI的“七十二变”?
  • 【测试】接口测试
  • 数据可视化软件配置
  • Unity 踩坑记录 将Image 的 Image Type 设置成 sliced 不显示图片
  • 【超详细】Windows安装Npcap
  • Framework开发入门(一)之源码下载
  • 音视频入门知识(七):时间戳及其音视频播放原理
  • Redis String 字符串详细讲解
  • 极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【一】
  • OCR实践-问卷表格统计
  • Xilinx FPGA的Bitstream比特流加密设置方法
  • 浅谈Python库之asyncio