首页 > 其他分享 >Spring boot2.7整合jetcache方法缓存

Spring boot2.7整合jetcache方法缓存

时间:2024-03-20 19:33:50浏览次数:25  
标签:boot2.7 缓存 name Spring 然后 public jetcache 我们 id

前面的文章 我们讲了 spring boot 整合 jetcache 做基本字符串数据缓存
但是 我这里有个这样的逻辑

在这里插入图片描述
我的 domain 包下 有一个 book 属性类
里面就 id 和 name 属性
设置了 对应的 set get函数
和一个整体的构造函数

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

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

@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中加上

valueEncode: java
valueDecode: java

在这里插入图片描述
保证 我们数据进出都是java对象

然后 我们重启项目 重新访问接口
在这里插入图片描述
这里 就没有任何问题了
在这里插入图片描述
我们到 redis 下 keys * 查询
就可以看到对应的key了
在这里插入图片描述

标签:boot2.7,缓存,name,Spring,然后,public,jetcache,我们,id
From: https://blog.csdn.net/weixin_45966674/article/details/136808992

相关文章

  • 【数据脱敏方案】不使用 AOP + 注解,使用 SpringBoot+YAML 实现
    文章目录引入认识YAML格式规范定义脱敏规则格式脱敏逻辑实现读取YAML配置文件获取脱敏规则通过键路径获取对应字段规则原始优化后对数据进行脱敏处理递归生成字段对应的键路径脱敏测试完整工具类引入在项目中遇到一个需求,需要对交易接口返回结果中的指定字段......
  • 1、【AI技术新纪元:Spring AI解码】Spring AI 应用框架
    SpringAI应用框架SpringAI是面向人工智能工程的应用框架。其目标是将Spring生态系统的设计原则如可移植性和模块化设计应用于AI领域,并推广使用POJOs(PlainOldJavaObjects,简单旧式Java对象)作为应用程序的构建块。特点跨AI提供商的可移植API支持,涵盖聊天、文本到图像......
  • springboot-Swagger
    Swagger简介前后端分离Vue+SpringBoot后端时代:前端只用管理静态页面:html==>后端。。模版引擎JSP=>后端是主力前后端分离后端:后端控制层,服务层,数据访问层【后端团队】前端:前端控制层,视图层【前端团队】Swagger号称世界上最流行的API框架RestfulApi文档在线自动生成......
  • Spring入门案例
    一、下载Spring5jar包官网地址:https://spring.io/版本目录:https://spring.io/projects/spring-framework#learn下载地址:https://repo.spring.io/ui/native/release/org/springframework/spring/二、新建java工程2.1新建项目2.2导入jar包必需的jar包2.2.1新建lib......
  • Springboot笔记-05
    1.Springboot的热部署spring为开发者提供了一个名为spring-boot-devtools的模块来使SpringBoot应用支持热部署,提高开发者的开发效率,无需手动重启SpringBoot应用。在pom文件加入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • SpringBoot整合Mybatis(SpringBoot3)
    依赖pom.xml:pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://......
  • spring的IOC
    IOC翻译成中文是"控制反转",不是具体技术,而是实现对象解耦的思想。控制反转的意思是将依赖对象生命周期控制权进行反转,全称应该是控制权反转。之前需要一个对象,常用的方法就是在当前对象中new一个对象,那这样有个比较大的问题在于,耦合,一旦new的那个对象构造方法变动,那么所有使用到......
  • 第一次实践spring cloud项目出的若干问题
    也许更好的阅读体验技术栈说明springcloud+eureka+feign+ribbon+hystrix+gateway+config+bus反序列化失败:Typedefinitionerror:[simpletype,classcom.elm.po.CommonResult];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinition......
  • Spring面试题
    目录Spring事务Spring的事务传播行为(级别)Spring的事务隔离Spring中的BeanFactory和ApplicationContext的区别Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。真正的数据库层的事务提交和回滚是通过binlog或者redolog实......
  • springboot项目打包时提示“程序包xxx不存在,找不到符号”
    springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找不到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的。xxx-parent:顶级父工程xxx-a:子项目1xxx-b:子项目2xxx-c:子项目3依赖关系......