【springboot】使用缓存

news2024/9/23 15:27:57

目录

1. 添加依赖

2. 配置缓存

3. 使用@EnableCaching注解开启缓存

4. 使用注解

        1. 配置缓存名称

        2. 配置缓存的键

        3. 移除缓存

5. 运行结果


1. 添加依赖

<!--        springboot缓存-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
<!--        具体使用的缓存:caffeine-->
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
        </dependency>

2. 配置缓存

        application.yml

spring:
  cache:
    type: caffeine
#    设置缓存的名字
    cache-names: res
    caffeine:
#      设置缓存的初始容量和最大容量,过期时间
      spec: initialCapacity=100,maximumSize=500,expireAfterWrite=10m

        application.properties

spring.cache.type=caffeine
# 设置缓存的名字
spring.cache.cache-names=res
# 设置缓存的初始容量和最大容量,过期时间
spring.cache.caffeine.spec=initialCapacity=100,maximumSize=500,expireAfterWrite=10m

3. 使用@EnableCaching注解开启缓存

        在配置类上添加以下注解,开启缓存。

@EnableCaching

4. 使用注解

        在需要缓存的方法上使用 @Cacheable 注解。@Cacheable 注解用于标记一个方法,使其返回值可以被缓存。

        1. 配置缓存名称

        直接配置固定名称

@Cacheable(cacheNames = "固定名称", key = "key")

        动态获取

@Service
public class ProductService {

    @Cacheable(cacheNames = "#{@cacheNameProvider.getCacheName()}", key = "#productId")
    public Product getProductById(Long productId) {
        // 模拟从数据库获取数据
        return new Product(productId, "Product Name");
    }
}
//-----------------其他类--------------
@Component
public class CacheNameProvider {
    public String getCacheName() {
        // 动态生成缓存名称
        return "dynamicProducts";
    }
}

        2. 配置缓存的键

        配置固定值。

        配置值为方法参数。

        配置值为多个方法参数的拼接。

        3. 移除缓存

5. 运行结果

6. 遇到的问题(未解决)

        在使用的时候遇到一个问题,动态获取缓存名称的时候一直报了一个错误,用了很多方式没法解决,暂时记录下。

        错误代码。

        报错截图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端发送邮件至指定邮箱的方式方法有哪些?

前端发送邮件的教程指南&#xff1f;前端静态页面怎么发送邮件&#xff1f; 无论是用户反馈、订阅通知还是其他形式的通信&#xff0c;前端发送邮件的功能都显得尤为重要。AokSend将详细介绍几种常见的前端发送邮件的方法&#xff0c;帮助开发者更好地实现这一功能。 前端发送…

防患于未然,智能监控新视角:EasyCVR视频平台在高校安全防控中的关键角色

有网民发视频称&#xff0c;某大学食堂内发生争执打斗事件。一男一女两名学生疑似因座位问题发生争执&#xff0c;女子被打倒在地。此事引发网友关注。高校食堂作为师生日常用餐的聚集地&#xff0c;人员密集且流动性大&#xff0c;极易因排队、价格、口味等问题引发争执&#…

17、信贷业务管理|为什么说贷款用途是贷款反复发生风险的重要根源?

国家金融监管总局&#xff1a;小额贷款公司应当与借款人明确约定贷款用途&#xff01; 8月23日&#xff0c;为规范小额贷款公司行为&#xff0c;加强监督管理&#xff0c;促进小额贷款公司稳健经营、健康发展&#xff0c;国家金融监督管理总局研究制定了《小额贷款公司监督管理…

pointer-events,添加水印的一个小小点

场景&#xff1a;平平无奇一个水印图&#xff0c;这类功能实现&#xff1a;就是覆盖在整个可视div后&#xff0c;又加了一个div&#xff08;使用定位canvas画一个水印图充当背景&#xff09;&#xff0c;可时我好奇的是&#xff0c;我使用控制台&#xff0c;选择对应的元素时&a…

国产隔离放大器:增强信号完整性和系统安全性的指南

隔离放大器是电子领域的关键组件&#xff0c;特别是在信号完整性和电气隔离至关重要的应用中。这些放大器隔离输入和输出信号&#xff0c;使它们能够在没有直接电气连接的情况下跨不同系统传输数据。这确保了电路一部分的高压尖峰或噪声不会影响另一部分&#xff0c;从而保护了…

全系统各类型工程水土保持方案编制实践技术

内容涵盖八大专题&#xff1a;点型项目、市政工程、线型工程、矿山工程、水利工程、取土场/弃渣场、补报项目、水土保持监测验收 课程一&#xff1a;点型水土保持方案编制方法及案例分析实践 课程二&#xff1a;市政工程水土保持方案编制方法及案例分析实践课程三&#xff1a;…

后端开发面经系列--快手C++一面

快手C一面&#xff0c;体验感非常nice&#xff01;&#xff01;&#xff01; 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/discuss/660221651866468352 算法 1、括号匹配 这里暂且以20. 有效的括号来解答。 思路 初始化一个空栈&#xff1a;使…

常见限流算法-固定窗口、滑动窗口、漏桶、令牌桶

为什么需要限流 限流可以认为服务降级的一种,限流就是限制系统的输入和输出流量已达到保护系统的目的。一般来说系统的吞吐量是可以被测算的,为了保证系统的稳定运行,一旦达到的需要限制的阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处理,拒绝处理…

Java easypoi导出word表格显示

1.成品 2.依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi…

黑马点评10——用户签到-BitMap数据结构

文章目录 BitMap用法签到功能签到统计 BitMap用法 其实数据库完全可以实现签到功能 但签到数据比较大&#xff0c;借鉴签到卡的思想 布隆过滤器也是使用BitMap实现的. 签到功能 因为是当前用户的当天&#xff0c;所以保存需要的年月日不需要参数&#xff0c;可以直接获取。…

从新手到大师:Java并发编程你必须知道的那些事!

文章目录 1 进程和线程的区别&#xff1f;2 如何创建一个线程实例并且运行它&#xff1f;3 Runnable 和 Callable 接口有什么区别&#xff1f;它们是如何使用的&#xff1f;4 方法定义中 synchronized 关键字的含义是什么&#xff1f;静态方法&#xff1f;在一个块之前 &#x…

linux 内核代码学习(八)

总体目标&#xff1a;由于fedora10 linux发行版中自带的linux2.6.xx内核源码规模太庞大了&#xff0c;对于想通读内核源码的爱好者来说太困难了&#xff0c;因此选择了linux2.4.20内核来进行测试&#xff08;最终是希望能够实现linux1.0内核的源码完全编译和测试&#xff09;。…

《互联网内容审核实战》:搭建团队到绩效激励,一书在手全搞定!“

&#x1f310;在数字时代的浩瀚海洋中&#xff0c;互联网视频、图片、文字等内容如同潮水般汹涌澎湃&#xff0c;它们以惊人的速度传播&#xff0c;连接着世界的每一个角落。这股信息洪流不仅丰富了我们的视野&#xff0c;也带来了前所未有的挑战——如何在享受信息便利的同时&…

docker-compose 快速部署nacos2.3.1-standalone单节点

一、nacos 介绍 官网&#xff1a; https://nacos.io/ 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 二、如何使用docker-compose 快速部署nacos2.3.1 ⚠️ &#xff1a; nacos-standalone 部署方式 依赖于 数据库&#xff0c;请先配置好数据库实例&…

如何利用AI快速总结论文文献内容?试试这2款大学生必备文献翻译神器

推荐2款支持AI快速总结论文文献内容的神器&#xff01; 1、包阅AI 点击链接直达官网>>https://baoyueai.com/ 一款高效提取文字信息的AI阅读工具&#xff0c;上传文献就能帮你快速完成【全文概述、分章节总结、智能导读】等&#xff0c;非常适用于总结论文文献内容。 支…

AI流程编排产品调研实践

随着AI技术的发展&#xff0c;AI应用和相关的生态也在不断地蓬勃发展&#xff0c;孵化这些AI应用的平台也在这几年也逐渐成熟。大模型应用开发平台像是淘金者必不可少的铲子一样&#xff0c;成为很多云平台厂商和互联网公司必不可少的平台与工具。 提起大模型流程编排或者大模型…

CSDN的Markdown编辑器语法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

4个图片编辑神器,简单好用,可以快速出图

图片编辑是我们生活中常见的需求&#xff0c;有很多好用的图片编辑软件可以推荐&#xff0c;按照端口不同可以给大家分享4个分别在电脑和手机上使用的图片编辑神器&#xff0c;简单好用&#xff0c;可以快速出图。 一、电脑软件 1.改图鸭 图片编辑软件中的全能选手&#xff0…

CleanMyMac X2024最新官方中文破解版本下载

&#x1f9f9; 嘿&#xff0c;Mac用户们&#xff0c;你们的小助手来了&#xff01; 今天要跟大家分享的&#xff0c;是一个能让你们的电脑焕发新生的神器——CleanMyMac X。这可不是一般的清洁工&#xff0c;它可是拥有超能力的超级英雄哦&#xff01;&#x1f31f; CleanMyMa…

AIGC与数据分析融合,引领商业智能新变革(TOP企业实践)

AIGC与数据分析融合&#xff0c;引领商业智能新变革&#xff08;TOP企业实践&#xff09; 前言AIGC与数据分析融合 前言 在当今数字化时代&#xff0c;数据已成为企业发展的核心资产&#xff0c;而如何从海量数据中挖掘出有价值的信息&#xff0c;成为了企业面临的重要挑战。随…