Spring Cache --学习笔记

一、概述

Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。

Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:

  • EHCache

  • Caffeine

  • Redis(常用)

起步依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>  		            		       	 <version>2.7.3</version> 
</dependency>

二、使用

1、添加依赖

确保项目中已经添加了spring cache的起步依赖。然后,根据你选择的缓存提供者(例如Redis、EhCache等),可能需要添加相应的依赖。如果你只是想使用Spring自带的简单缓存,那么无需额外添加依赖。

2、启用缓存支持

在Spring Boot项目中,需要通过在一个配置类上添加@EnableCaching注解来启用缓存支持。这个注解会触发一个Spring Cache的搜索机制来配置相应的缓存管理器(CacheManager)。这个注解也可以直接配置在启动项上。

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Configuration;@Configuration
@EnableCaching
public class CacheConfig {// 这里可以定义一些缓存相关的额外配置
}

3. 配置缓存管理器

Spring Cache抽象支持多种缓存解决方案,但通常你需要根据项目需要选择并配置一个合适的缓存管理器。例如,如果你使用Redis作为缓存存储,你需要配置一个RedisCacheManager。简单的说,就是在项目的application.propertiesapplication.yml文件中添加必要的配置:

# 以下是使用Redis作为缓存时的配置示例
spring.cache.type=redis
spring.redis.host=localhost
spring.redis.port=6379

4. 使用缓存注解

在准备完成后,你可以在服务类或方法上使用Spring Cache提供的注解来实现缓存策略。常用的缓存注解包括:

注解作用
@Cacheable在方法执行前Spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;没有则调用方法并将方法返回值存放到缓存中。
@CachePut无论如何都会执行方法,并将返回值存放到缓存中,主要用于更新缓存数据。
@CacheEvict移除缓存数据,可以指定一个缓存或多个缓存,还可以表明是移除这些缓存的全部数据还是某个特定的数据。
@Caching组合多个缓存注解使用,可以同时应用@Cacheable@CachePut@CacheEvict
@CacheConfig类级别的注解,用于共享缓存的名称、key生成器、缓存管理器等配置。

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

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

相关文章

第三方软件测试机构进行验收测试的好处分享,需多少时间和费用?

在软件开发过程中&#xff0c;软件验收测试是不可或缺的一环。那么&#xff0c;什么是软件验收测试呢?为什么建议选择第三方软件测试机构进行验收测试呢? 软件验收测试是指在软件开发完毕后&#xff0c;由测试人员基于软件需求规格说明书和软件设计文档等材料&#xff0c;对…

扩散模型--论文分享篇

定义&#xff1a;输入文本与图像&#xff0c;生成对图像的描述。 所采用的方法&#xff1a;对比学习、基于跨注意力机制的多模态融合 基于扩散模型的方法&#xff1a;主要介绍的扩散的原理 图像生成任务介绍 GAN VAE 扩散模型 基于GAN的图像生成&#xff0c;一个生成器与判别…

【重制版】Unity Meta Quest 一体机开发(一):前期准备,Meta XR SDK导入和环境配置,配置玩家物体

文章目录 &#x1f4d5;教程说明&#x1f4d5;Meta XR SDK 介绍&#x1f4d5;前期准备⭐开启开发者模式⚡在 Meta 官网申请开发者⚡在 Meta Quest 手机 APP 开启开发者 ⭐电脑需要下载的软件⚡Meta Quest Link&#xff08;以前叫做Oculus PC客户端&#xff09;⚡Oculus ADB Dri…

洗地机有哪些牌子比较好?洗地机排行榜十大品牌

随着洗地机市场竞争的日益激烈&#xff0c;市场上涌现出数百个品牌的产品&#xff0c;涵盖了从入门级到高端的各类价位和功能。这种多样化的选择一方面极大地满足了用户的不同需求&#xff0c;但另一方面也让消费者在挑选时面临一定的困扰。在众多种类的洗地机中&#xff0c;如…

MyBatisPlus学习笔记(二)

条件构造器&#xff1a; Wrapper的作用就是来封装我们当前的条件的 删除用的和查询用的一样&#xff1a;QueryWrapper 和 LambdaQueryWrapper MyBatis-Plus分页插件的配置和使用 Ctrl H 查看当前接口或者类的一个继承关系 Ctrl P 分页插件 乐观锁和悲观锁 通用枚举 代码…

LVGL移植到STM32 MCU平台详细经验笔记教程

1、前言 在之前的一篇文章LVGL在VSCode中安装模拟器&#xff0c;已经对LVGL进行了较为详细的介绍&#xff0c;本文将着重讲解如何移植适配LVGL&#xff0c;让这款图形化GUI库在STM32或其它类型的嵌入式MCU设备上运行起来。 LVGL在VScode中安装模拟器运行配置笔记教程_vscode …

利用Dify+Kimi免费使用Kimi的API接口的操作和使用方法

废话不多说&#xff0c;直接开整kimi-free-api项目。 1、kimi-free-api服务安装启动 支持高速流式输出、支持多轮对话、支持联网搜索、支持智能体对话、支持长文档解读、支持图像OCR&#xff0c;零配置部署&#xff0c;多路token支持&#xff0c;自动清理会话痕迹。 与ChatG…

一文了解知识中台:是什么、作用、如何搭建

在当今信息繁杂的时代&#xff0c;知识对于企业来说犹如宝藏般重要&#xff0c;而知识中台就是宝藏山的藏宝图。关于知识中台&#xff0c;你可能会感到好奇&#xff0c;它究竟是什么&#xff0c;有什么作用&#xff0c;又该如何搭建知识中台呢&#xff1f;接下来就让LookLook同…

MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】

算法思路介绍&#xff1a; 费舍尔线性判别分析&#xff08;Fishers Linear Discriminant Analysis&#xff0c;简称 LDA&#xff09;&#xff0c;用于将两个类别的数据点进行二分类。以下是代码的整体思路&#xff1a; 生成数据&#xff1a; 使用 randn 函数生成随机数&#x…

js中事件的捕获和冒泡的区别

在JavaScript中&#xff0c;事件的捕获和冒泡是描述事件传播的两种不同机制&#xff0c;它们决定了事件处理器被调用的顺序。这两种机制是事件流模型的一部分&#xff0c;对于理解和控制事件如何在DOM&#xff08;文档对象模型&#xff09;中传播至关重要。以下是它们的主要区别…

基于微信小程序开发的一款 高颜值在线答题刷题考试程序

大家好&#xff0c;我是兔兔。今天给大家分享的内容是&#xff0c;兔兔答题模板三的发布。 兔兔答题模板三是一款基于uniapp开发&#xff0c;后端使用PHP&#xff0c;前端使用图鸟UI的微信答题小程序应用程序。相必兔兔答题模板一和兔兔答题模板二&#xff0c;进行了系统架构的…

上位机图像处理和嵌入式模块部署(f103 mcu中main入口函数误解)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 学习stm32代码的时候&#xff0c;关于汇编文件&#xff0c;大家一般都会参考官方给出的汇编文件。通常情况下&#xff0c;不会自己去写汇编文件。特…

flask 登录记录session

在Flask中&#xff0c;可以使用session对象来记录用户的登录状态。以下是一个简单的示例&#xff0c;展示了如何在用户登录后将用户信息存储在session中&#xff0c;并在其他页面检查session来确认用户是否已经登录。 首先&#xff0c;安装Flask&#xff1a; pip install Flas…

凡事有利有弊,如果生了一个自闭症的小孩,请说出有利的部分 :独特、专注力、诚实和直接,记忆力

生育一个自闭症小孩可能带来一些独特的优势和积极的方面&#xff0c;尽管也会面临许多挑战。以下是一些可能的有利方面&#xff1a; 独特的视角&#xff1a;自闭症儿童通常有独特的思维方式和视角&#xff0c;他们可能在某些方面比普通人更敏锐。这种独特性可以带来创新的解决方…

Nginx/阿里云/二级域名的配置和使用

阿里云域名解析配置如下&#xff1a; nginx配置如下&#xff1a; 访问地址&#xff1a; zhadmin.iotzzh.com image.png

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11安装iperf并测试网速

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11安装iperf并测试网速 2024/5/29 15:09 服务器端&#xff1a;瑞芯微官方Toybrick TB-RK3588开发板&#xff1a;Debian11 客户端&#xff1a;笔记本电脑&#xff1a;Ubuntu20.04 两者通过千兆交换机连接&#xff01; toybr…

小白跟做江科大32单片机之蜂鸣器

1.复制之前编写的工程库项目&#xff0c;详细工程库创建过程如下链接&#xff1a; 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 3.修改main.c…

VRTK4教程 一:资源导入、Unity设置、连接头盔

文章目录 VRTK4的分包导入VRTK4的资源包unity设置连接头盔 VRTK4的分包 vrtk4的资源包和旧版不同&#xff0c;采用了分包导入的思想&#xff0c;我们要用什么功能&#xff0c;就导入什么包&#xff0c;可以有效减小程序体积 如下图&#xff0c;已经导入的vrtk包会显示在Packag…

【JS红宝书学习笔记】第4章 变量、作用域和内存

第4章 变量、作用域和内存 1. 原始值和引用值&#xff08;面试题&#xff09; ECMAScript 变量可以包含两种不同类型的数据&#xff1a;原始值和引用值。原始值&#xff08;primitive value&#xff09;就是最简单的数据&#xff08;Undefined、Null、Boolean、Number、Strin…

电话客服软件系统:为什么它是现代企业不可或缺的伙伴?

一、引言 在当今这个数字化快速发展的时代&#xff0c;企业的运营方式和客户服务模式都发生了翻天覆地的变化。其中&#xff0c;电话客服软件系统作为连接企业与客户的桥梁&#xff0c;在现代企业中扮演着至关重要的角色。它不仅提高了客户服务效率&#xff0c;还为企业带来了…