Spring boot2.7整合jetcache方法缓存

前面的文章 我们讲了 spring boot 整合 jetcache 做基本字符串数据缓存

但是 我这里有个这样的逻辑

我的 domain 包下 有一个 book 属性类

里面就 id 和 name 属性

设置了 对应的 set get函数

和一个整体的构造函数

java 复制代码
package com.example.javadom.domain;

public class book {
    private int id;
    private String name;

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public book(int id,String name) {
        this.id = id;
        this.name = name;
    }
}

然后 我们接口类直接 new 一个对象 然后 返回回去

我们访问接口

返回正常

那么 我们这个数据 如何用 jetcache缓存呢?

那么 我们就来说说方法缓存

application 配置文件中 我们远程和本地的配置 都给它留着 免得出问题

然后 打开 redis

然后 我们在启动类上 在加一个注解

java 复制代码
@EnableCreateCacheAnnotation
@EnableMethodCache(basePackages="包名")

EnableMethodCache 代表开启方法缓存

因为 它也是索引注解 所以 必须和 EnableCreateCacheAnnotation 配合使用

EnableMethodCache的basePackages设置包名 或者是 定义范围 一定要包含到我们使用方法缓存的目录

这里 我直接给启动类的目录了

这样 我们所有的项目内容 都会被覆盖到

启动类加上 后 方法就可以用了

然后 我们接口代码修改如下图

@Cached 表示 要用缓存处理这个方法 缓存名 叫name key的话 如果你没有特殊表示可以固定死 如果是根据id查询 可以拿id作为 key 这样 就能存入指定数据 更具key寻找

然后 expire 指定过去时间 来个 3600

如果你想改它的单位 可以写 timeUnit

这个就不多说了

area 的区域 也是可以设的

然后 我们重启项目 访问接口 id 我们后面跟个 1吧

但 控制台上 报了个空指针异常

简单说 就是 来到 application 下面 给 remote 下面的配置 都加上 keyConvertor

然后 又会报一个序列化的错误

这个错误 我之前的文章 Exception in thread "main" java.io.NotSerializableException: 就有讲过

让属性类 book 实现 接口 Serializable

然后 在 application中 的 remote下default中加上

javascript 复制代码
valueEncode: java
valueDecode: java

保证 我们数据进出都是java对象

然后 我们重启项目 重新访问接口

这里 就没有任何问题了

我们到 redis 下 keys * 查询

就可以看到对应的key了

相关推荐
devilnumber5 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
asdfg12589637 小时前
JavaBean是什么?怎么理解?有什么用途?
java·开发语言
摇滚侠8 小时前
SpringMVC 入门到实战 文件上传 75-77
java·后端·spring·maven·intellij-idea
GIS数据转换器8 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
华如锦9 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
睡不醒男孩0308239 小时前
CLup 6.x 版本中针对StarRocks 存算一体集群的完整操作手册
java·服务器·网络·clup
程序员黑豆10 小时前
Java中怎么实现字符串拼接呢【AI全栈开发】
java
java1234_小锋10 小时前
LangChain4j 开发Java Agent智能体- 多模态支持
java·开发语言·langchain4j
艳阳天_.10 小时前
星瀚弹框页面实现
java·前端·python