springboot+cache缓存上

2023-11-12

cache内容

缓存的意义:将方法的运行结果进行缓存,以后再要相同的数据,直接从缓存中获取,不用调用方法;

cacheManager管理多个Cache组件,对缓存的真正操作CRUD操作在Cache组件中,每一个缓存组件有自己唯一一个名字;

几个属性:
在这里插入图片描述

  • cacheNames/value:指定缓存的名字;

  • key:缓存数据使用的key:可以用它来指定。默认是使用方法参数的值 1-方法的返回值
    编写SpEL: #id:参数id的值 #a0 #p0 #root.args[0]

  • keyGenerator: key的生成器;可以自己指定key的生成器的组件id

  • cacheManager:指定缓存管理器;或者cacheResolver指定缓存解析器

  • condition:指定符合条件的情况下缓存;condition = “#id>1"

  • unless:否定缓存;当unless指定的条件为true,方法的返回值就不会缓存,可以获取到结果进行判断; unless = “#result = null”

    @Cacheable(cacheNames = {
   "emp"},key="root.id")
    public Employee getEmpById(Integer id){
   
        System.out.println("查询"+id+"号员工");
        Employee employee = employeeMapper.getEmpById(id);
        return employee;
    }

在这里插入图片描述
@CachePut:

//    @CachePut:既调用方法,又更新缓存数据;同步更新缓存
//    修改了数据库的某个数据,同时更新缓存
//    运行:
//      1.先调用目标方法
//      2.将目标方法的结果缓存起来
    @CachePut(key= "#result.id")
    public Employee updateEmp(Employee employee){
   
        System.out.println("updateEmp"+employee);
        employeeMapper.updateEmpById(employee);
        return employee;
    }

@CacheEvict

//    @CacheEvict:缓存清除
//    key:指定要清除的数据
//    allEntries = true:指定清除这个缓存中的所有数据
//    beforeInvocation=true 代表清除缓存操作是在方法运行之前执行,无论方法是否出现异常,缓存都清除
    @CacheEvict
    public void deleteEmp(Integer id){
   
        System.out.println("deleteEmp:"+id);
        int i = 101/0;
        employeeMapper.deleteEmpById(id);
    }

搭建基本环境

  1. 导入数据文件 创建出department和employee表
  2. 创建Javabean封装数据
  3. 整合MyBatis操作数据库 配置数据源信息

使用步骤

  1. 导入模块
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
  1. 在主函数中开启缓存模式 @EnableCaching

@EnableCaching
@SpringBoot
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot+cache缓存上 的相关文章

随机推荐

  • qt控件学习笔记

    QToolBox控件 QToolBox控件 类似于下拉列表控件 头文件 include
  • Jenkins持续集成demo

    1 下载Jenkins的war包 官网地址 https jenkins io 点击下载 将jenkins war 部署到Tomcat中 本文使用的是Tomcat8 5 35 注意Tomcat需要配置账号密码 Tomcat7 是 manage
  • MySQL、Oracle中去重并保留最新的一条数据

    MySQL select from my table where id in select id from select id name group code max create time mt from my table group b
  • IDEA的设置

    terminal wsl2 setting gt tools gt Termianl gt shell path 填写wsl exe的绝对路 绝对路径的查找 wsl2 安装 https docs microsoft com en us wi
  • LA@向量组线性相关性

    文章目录 向量组线性相关性 线性相关 线性无关 多向量向量组线性相关 单向量向量组的线性相关性 单位向量向量组线性相关性 双向量向量组的线性相关性 双向量线性相关的几何意义 三向量线性相关的几何意义 包含零向量的向量组线性相关 概念迁移 线
  • STC89C51——中断系统

    前言 本文介绍基于常见的51单片机 即如下图的芯片 STC89C51具备5个中断源 中断源 优先级 中断请求标志位 中断允许控制位 外部中断0 0 IE0 EX0 定时器中断0 1 TF0 ET0 外部中断1 2 IE1 EX1 定时器中断
  • 2021 Web 前端热点笔试面试题总结【更新版】

    提醒 我只是答案的搬运工 如果在浏览中发现有错误 欢迎评论中提出来 我好修改 谢谢 简述异步和同步的区别 同步 浏览器访问服务器请求 用户看得到页面刷新 重新发请求 等请求完 页面刷新 新内容出现 用户看到新内容 进行下一步操作 异步 浏览
  • 指定岗位

    一 背景介绍 这里我们选择的是目前求职和招聘最常用的网站Bxxx 在采用其它方法的试验中 我们可能会遇到如下问题 不知道该怎么解析网址 自定义城市和岗位的搜索词 不知道怎么样批量爬取 这里指的是自动切页 不知道该怎么破解动态cookie的问
  • K8S 安装 Ingress Controller

    版本介绍 版本1 NGINX Ingress Controller nginx公司的nginx ingress NGINX Ingress Controller 由 F5 NGINX 开发和维护 docs nginx com 可在 GitH
  • Ubuntu命令介绍——echo

    echo是一个非常简单 直接的linux命令 将argument送出至标准输出 STDOUT 通常就是在显示器 monitor 上输出 为了更好的理解 不如先让我们跑一下 echo 命令好了 echo 你会发现只有一个空白行 然后又回到 s
  • k8s--基础--6.1--环境搭建--多master高可用集群

    k8s 基础 6 1 环境搭建 多master高可用集群 前提 使用root用户 1 机器 主机名 IP 说明 master1 192 168 187 154 2核4G 硬盘20G 核数最小要求是2 master2 192 168 187
  • SQLite向arm板子的移植

    SQLite向arm linux的移植 SQLite是一个开源的嵌入式关系数据库 我们用它来管理从M0端接收的数据 将检测到的仓库信息存储起来 SQLite环境的建立 首先从下载最新版本的sqlite源码包 我下载的是sqlite amal
  • mac idea 使用技巧-长期更新

    公司配发了新款Mac book pro M1 以前都是使用window 版本 切换成了mac 操作idea 很多技巧需要重新掌握 现在总结文档 idea 版本 试用版 建议大家自行购买账户 idea 在Mac 环境下游多中快捷键组合 注意事
  • 最通俗易懂的nginx

    nginx 文章目录 nginx 什么是nginx nginx配置文件 正向代理 反向代理 负载均衡 动静分离 高可用 什么是nginx Nginx是一款自由的 开源的 高性能的HTTP服务器和反向代理服务器 同时也是一个IMAP POP3
  • 【STM32】单片机启动文件分析

    启动文件 启动文件由汇编语言写成 时单片机上电之后执行的第一个文件 也就是从上电到mian函数中间的一段过程 bootloader bootloader也可以叫启动文件 每种MCU都有对应的启动文件 但开发环境往往自动完整地提供了这个启动文
  • 虚拟机nat模式网卡配置

    我们的目的是 虚拟机和主机能互ping 虚拟机可以ping外网 1 设置win10防火墙 添加入站规则 2 共享无线网卡或者有线网卡给虚拟机网卡 VMnet8 3 虚拟机虚拟网络编辑 4 修改虚拟网卡vmnet8配置 5 关闭centos防
  • 史上最全树莓派安装方法

    众所粥汁 树莓派是一个只有银行卡大小的 电脑 但很多人在安装树莓派时会有疑问 我安装的对不对 系统是正版吗 怎么会出错 等等等等问题 所以今天我就带来一个树莓派使用指南 材料有 1 树莓派3b 3b 4b 2 外壳 3 网线 可选 4 显示
  • 怎么能学会做买卖步骤是什么(想做买卖赚钱应该先从什么做起)

    如何能学会做交易 办法是什么 胜利者 有本人的战略 遵照本人的战略 比方价格入股 趋向盯梢入股 套利 缠论买卖体例之类 波折者 自我买卖 情结买卖 动静炒买炒卖股票 贪嗔痴慢疑主宰你的操纵 你必需输得起 没有人 会在看了一本简略五官科手术的
  • JetBrains IDEA 系列产品通用xx方法(license server)

    若资金允许 请点击https www jetbrains com idea buy 购买正版 谢谢合作 学生凭学生证可免费申请正版授权 创业公司可5折购买正版授权 本文适用于所有 JetBrains 系列产品 方法一 最新方法 Jet Br
  • springboot+cache缓存上

    cache内容 缓存的意义 将方法的运行结果进行缓存 以后再要相同的数据 直接从缓存中获取 不用调用方法 cacheManager管理多个Cache组件 对缓存的真正操作CRUD操作在Cache组件中 每一个缓存组件有自己唯一一个名字 几个