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

【springboot】使用缓存

目录

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: rescaffeine:
#      设置缓存的初始容量和最大容量,过期时间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. 遇到的问题(未解决)

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

        错误代码。

        报错截图。

相关文章:

【springboot】使用缓存

目录 1. 添加依赖 2. 配置缓存 3. 使用EnableCaching注解开启缓存 4. 使用注解 1. 配置缓存名称 2. 配置缓存的键 3. 移除缓存 5. 运行结果 1. 添加依赖 <!-- springboot缓存--><dependency><groupId>org.springframework.boot</groupId>…...

<Linux> 基础IO

目录 一、C语言文件IO 1. 基础认知 2. stdin、stdout、stderr 3. 文件接口汇总 4. 文件写入 5. 文件读取 6. 标志位传递 7. 总结 二、系统文件IO 1. 文件系统调用open 1.1 pathname &#xff1a; 1.2 flags &#xff1a; 1.3 mode&#xff1a; 1.4 open函数返回值&#xff1a;…...

OpenFeign的使用(一)

OpenFeign的定义 OpenFeign是一个声明式的Web服务客户端&#xff0c;它简化了编写Web服务客户端的过程&#xff0c;使得微服务间的通信更加简单和灵活。它主要作用于帮助开发者方便地调用远程服务&#xff0c;让远程调用像本地方法调用一样简单。 事实上&#xff0c;远程调用的…...

【Python报错已解决】`AttributeError: move_to requires a WebElement`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言&#xff1a;一、问题描述&#xff1a;1.1 报错示例&#xff1a;1.2 报错分析&#xff1a;1.3 解决思路&#xff…...

数据结构(邓俊辉)学习笔记】排序 2——快速排序:性能分析

文章目录 1. 不稳定 就地2. 最好情况 最坏情况3.平均情况 1. 不稳定 就地 以下针对刚才所给出的快速排序算法的第一个版本&#xff0c;就其性能做一分析。 首先很遗憾地发现&#xff0c;这个算法是不稳定的。快速排序算法的不稳定性通过我们刚才所举的那个实例可以清楚地看…...

在postman中使用javascript脚本生成sign签名

大多数线上api接口服务都需要提供签名才可以正常访问。虽然带来了安全&#xff0c;单有时为了快速验证接口的某个功能&#xff0c;就不得不编写代码&#xff0c;计算签名然后再请求。那么&#xff0c;使用postman提供的script功能&#xff0c;是否能实现签名计算功能吗&#xf…...

设计模式—2—单例模式

文章目录 一、单例模式概述二、单例模式特点三、示例3.1、基本实现&#xff08;懒汉式-线程不安全&#xff09;3.2、基本实现&#xff08;懒汉式-线程安全&#xff09;3.3、基本实现&#xff08;饿汉式&#xff09; 四、总结 一、单例模式概述 单例模式&#xff08;Singleton …...

服务器数据恢复—磁盘坏扇区导致raid6阵列崩溃的数据恢复案例

服务器存储数据恢复环境&#xff1a; 一台存储中有一组由12块SAS硬盘组建的raid6磁盘阵列&#xff0c;划分了1个卷&#xff0c;由数台Vmware ESXI主机共享存储。卷中存放了大量的Windows系统虚拟机。这些虚拟机系统盘大小一致&#xff0c;数据盘大小不确定&#xff0c;数据盘都…...

原码、反码、补码

目录 背景: 1.原码 举例: 2.反码&#xff1a; 举例 : 3.补码&#xff1a; 举例&#xff1a; 背景: 在计算机科学中&#xff0c;原码、反码和补码是三种用于表示有符号整数&#xff08;即包含正负数&#xff09; 的二进制编码方式。它们各自有其独特的定义和用途&#x…...

排序算法之计数排序详细解读(附带Java代码解读)

计数排序&#xff08;Counting Sort&#xff09;是一种非比较型的排序算法&#xff0c;它通过统计每个元素的出现频率&#xff0c;然后计算元素的位置信息&#xff0c;最后将元素放到正确的位置&#xff0c;从而实现排序。计数排序特别适用于元素范围有限的情况&#xff0c;比如…...

Linux:如何使用 Crontab

今天想了解一下Linux Crontab。嗯&#xff0c;在Windows上&#xff0c;可以看做和定时任务差不多。 “要在特定时间进行特定工作。” 如果是这样&#xff0c;可以使用crontab&#xff0c;轻松使用Linux。 1. 基本 (crontab basic) 先看一下基本的crontab使用方法吧。在Linu…...

AI模型:追求全能还是专精?-- 之7 智能工厂程序设计

Q1、感觉上上面离我想做的事情却来越远了。我们跳过讨论直接进入程序设计吧。StringProcessor&#xff08;文字/信息/数字&#xff09;抽象代理工厂-创造 Universal given时空区域 |bar PROCESS: 页面版块的图式schema/概念的KE图式CaseFilter 一般应用工厂-制造- General sign…...

如何在本地服务器部署SeaFile自托管文件共享服务结合内网穿透打造私有云盘?

文章目录 1. 前言2. SeaFile云盘设置2.1 Owncould的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置 3. cpolar内网穿透3.1 下载安装3.2 Cpolar注册3.3 Cpolar云端设置3.4 Cpolar本地设置 4.公网访问测试5.结语 1. 前言 本文主要为大家介绍&#xff0c;如何使用两个简单软件…...

学习记录:js算法(二十五):合并两个有序链表

文章目录 合并两个有序链表我的思路网上思路 总结 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 图一 示例 1&#xff1a;&#xff08;如图一&#xff09; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] …...

43. 1 ~ n 整数中 1 出现的次数【难】

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9843.%201%EF%BD%9En%E6%95%B4%E6%95%B0%E4%B8%AD1%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0/README.md 面试题 43. 1 &#xff5e; n 整数中 1 …...

K8S - 理解volumeMounts 中的subpath

在上一篇文章中 springboot service如何动态读取外部配置文件 介绍了springboot 中如何实时读取外部配置文件的内容 部署在K8S 接下来我把它部署在k8s 首先&#xff0c; 我们把配置文件放入项目某个目录 这步部是必须的&#xff0c; 毕竟我们要引入是项目外部的文件&#xf…...

java工程师成功转型大数据

时间&#xff1a;2024年09月06日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;喜马拉雅 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋推荐一下&#xff0c;小蒋希望遇到一个认真做事…...

visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决

系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 今天遇到一个问题&#xff1a;visual studio 2022升级成预览版以后&#xff0c;之前的有些工程编译出错。首先代码、项目设置都没有改变&#xff0c;只是更新了visual studio 2022。 在编译工程时&#xff0c;编译器…...

Linux 性能调优技巧

1理解 Linux 性能的基本组成 CPU 使用率&#xff1a;衡量 CPU 在单位时间内被占用的程度。内存使用&#xff1a;关注的是活跃内存与缓存内存的比例&#xff0c;以及是否有过多的交换。I/O 性能&#xff1a;磁盘读写速度直接影响应用程序的响应时间和吞吐量。网络性能&#xff…...

【网络安全】WordPress Uncontrolled Resource Consumption

未经许可,不得转载。 文章目录 WordPresswp-cron.php实战漏洞危害解决措施WordPress WordPress 是全球最广泛使用的内容管理系统(CMS),目前约有 43% 的网站依赖于它。由于其用户友好的界面和丰富的插件功能,WordPress 成为了全球最受欢迎的 CMS。 然而,在使用 WordPres…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...

Ubuntu 安装 Mysql 数据库

首先更新apt-get工具&#xff0c;执行命令如下&#xff1a; apt-get upgrade安装Mysql&#xff0c;执行如下命令&#xff1a; apt-get install mysql-server 开启Mysql 服务&#xff0c;执行命令如下&#xff1a; service mysql start并确认是否成功开启mysql,执行命令如下&am…...