SpringCache笔记

2023-10-26

SpringCache

一、简介

1、缓存介绍

Spring 从 3.1 开始就引入了对 Cache 的支持。定义了 org.springframework.cache.Cacheorg.springframework.cache.CacheManager 接口来统一不同的缓存技术。并支持使用 JCache(JSR-107)注解简化我们的开发。

JCache简介

JCache是JSR-107规范中定义了Java对象临时缓存在内存中的API和语义,包括对象的创建(object creation)、共享访问(shared access)、失效(invalidation)和跨JVM的一致性(consitency across jvm’s)。

简单说就是:JCache是Java提供的标准缓存API。

其使用方法和原理都类似于 Spring 对事务管理的支持。Spring Cache 是作用在方法上的,其核心思想是,当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存在缓存中。

2、Cache 和 CacheManager 接口说明
  • Cache 接口包含缓存的各种操作集合,你操作缓存就是通过这个接口来操作的。
  • Cache 接口下 Spring 提供了各种 xxxCache 的实现,比如:RedisCache、EhCache、ConcurrentMapCache
  • CacheManager 定义了创建、配置、获取、管理和控制多个唯一命名的 Cache。这些 Cache 存在于 CacheManager 的上下文中。

小结:

每次调用需要缓存功能的方法时,Spring 会检查指定参数的指定目标方法是否已经被调用过,如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。

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

SpringCache笔记 的相关文章

  • Android:java.lang.OutOfMemoryError:

    我在 Android 上开发了一个使用大量图像的应用程序 可绘制文件夹中有很多图像 比如说超过 100 张 我正在开发图像动画应用程序 我使用 imageview 来显示 GIF 图像 我使用了将 gif 图像分割成多个 PNG 格式图像的
  • 无论线程如何,对象是否总是能看到其最新的内部状态?

    假设我有一个带有简单整数计数变量的可运行对象 每次可运行对象运行时该变量都会递增 该对象的一个 实例被提交以在计划的执行程序服务中定期运行 class Counter implements Runnable private int coun
  • 在 String 值之后打印 int 值

    我有以下示例代码 int pay 80 int bonus 65 System out println pay bonus bonus pay 有人可以向我解释一下为什么我得到以下输出 145 6580 您的代码正在从左到右解释表达式 pa
  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • Java,顺序流在哪个线程中执行?

    在阅读有关流的文档时 我遇到了以下句子 attempting to access mutable state from behavioral parameters presents you with a bad choice if you
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • 在 Eclipse 3.5 上安装旧版 TestNG 插件时出现问题

    我正在尝试在 eclipse 3 5 上安装 TestNG 5 11 并获得以下信息 eclipse buildId unknown java version 1 6 0 19 java vendor Sun Microsystems In
  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF

随机推荐

  • windows下串口初步编程(多线程+windows串口)

    环境 win10操作系统 编程环境 Eclipse Cygwin GCC编译器 串口环境 串口调试助手v2 1 虚拟串口助手 Virtual Serial Port Driver 7 2 过程 1 在Eclipse环境下新建一个C 工程 并
  • AI视频换脸faceswap使用经历

    首先在github上面下载faceswap的exe文件 在搜索框搜索faceswap选择第一个 如图所示 点击release之后就能看到exe文件了 点击之后就会出现下载界面 然后选择目录下载它 安装faceswap 最好选择默认目录安装
  • python刷题第八周

    以下是有所收获的题目 第一题 第5章 10 两数之和 30 分 给定一组整数 还有一个目标数 在给定这组整数中找到两个数字 使其和为目标数 如找到 解是唯一的 找不到则显示 no answer 输出的下标按从小到大排序 用一重循环加字典实现
  • 背景建模(对视频处理+python实现+原理+实验报告)

    资源 背景建模 对视频处理 python实现 原理 实验报告 实现效果 依赖库安装及运行描述 运行代码所需的库有两个 numpy和opencv 安装命令 pip install numpy pip install opencv python
  • 你可以不在百度,但不能没有大厂程序员的经验和眼界!

    时刻保持对最新技术的敏感性 并定期更新自己的技能储备 是每个技术人日常必修课 鉴于 BAT 等一线大厂在前沿技术领域的持续研究和大规模投入 直接向他们学习取经 是最为便捷也最为有效的学习方式 你可以不在 BAT 但你不能没有大厂程序员的眼界
  • 可逆矩阵性质总结_矩阵的逆

    一 可逆矩阵与逆矩阵 1 定义 对于矩阵A 如果存在一个矩阵B 使得 则称矩阵A为可逆矩阵 简称A可逆 称B为A的逆矩阵 记为 注意 矩阵A与B的地位是平等的 也可称B为可逆矩阵 例如 设 则AB BA E B为A的逆矩阵 说明 若A是可逆
  • uniapp开发h5,修改原生导航栏,自定义按钮

    关于修改原生导航栏样式的官方文档 添加自定义按钮只有app和h5才可以 pages pages数组中第一项表示应用启动页 参考 https uniapp dcloud io collocation pages path pages bloo
  • Ubuntu 安装 OpenCV4

    参考 ubuntu环境 安装opencv4 ubuntu安装opencv4 jbyyy 的博客 CSDN博客 目录 1 下载OpenCV 2 安装依赖 3 配置 CMake 交叉编译 OpenCV 4 编译 OpenCV 5 系统配置 环境
  • springcloud-alibaba-组件库

    架构选型 技术选型 包格式 公共配置 Springcloud Alibaba 简介 概述 下载 安装nacos 下载 手册 安装 配置 MySQL 数据库 启动集群 防火墙 访问 升级nacos1 x 到 2 x 防火墙 nginx 安装g
  • BES2300x笔记(38) -- 耳机与充电盒数据交互

    哈喽大家好 这是该系列博文的第三十八篇 篇 lt lt 系列博文索引 快速通道 gt gt 一 前言 蓝牙耳机的发展 从一开始的单个挂耳式耳机 到后来的颈挂式耳机 再到现在的TWS耳机 续航 一直都是个大问题 充电盒的诞生 不仅解决了TWS
  • vue + element ui 流文件导出 post or get , 文件下载等 合集

    1 vue element ui 的 get 方法导出数据 let params JSON parse JSON stringify this filterForm let exportUrl 清除为空的字段 for const key i
  • Postman如何做接口测试:如何导入 swagger 接口文档

    在使用 postman 做接口测试过程中 测试工程师会往界面中填入非常多的参数 包括 url 地址 请求方法 消息头和消息体等一系列数据 在请求参数比较多的情况下非常花时间 我们可以使用 postman 的文档导入功能 直接导入 swagg
  • HTML_and_CSS

    HTML知识 1 html概念 html全称HyperText Markup Language 翻译为超文本标记语言 它不是一种编程语言 是一种描述性的标记语言 用于描述超文本内容的显示方式 比如字体 颜色 大小等 超文本 音频 视频 图片
  • MVC 和Spring MVC

    MVC 和Spring MVC 我们都知道常说的MVC指的是 Model View Controller 数据模型 视图 控制器 三层架构指的是 展现层 应用层 数据访问层 但是Spring MVC却不是指的上面的三层架构而是将展现层拆分成
  • 项目开发流程图

    项目开发流程图 抽空总结了下项目开发流程 大多数公司应该都沿用这个流程方式
  • Spire.Office for Java 8.9.5/Spire.Office 8.9.2 .NET

    Spire Office for NET is a combination of Enterprise Level Office NET API offered by E iceblue It includes Spire Doc Spir
  • VHDL棋类竞赛设计(一)

    设计要求 竞赛计时分两个阶段 每方50秒的规定用时和每方每步8秒的读秒 1 可分别显示甲乙双方规定用时阶段的已用时间和读秒阶段 8秒 的倒计时 2 设置两路输入模拟双方落子 在规定用时阶段 一路信号有效时会暂停本方计时并继续对方计时 而在读
  • 当easyui datagrid无数据时,显示特定值。如:没有数据

    lt html gt lt head gt lt meta charset UTF 8 gt lt title gt Basic DataGrid jQuery EasyUI Demo lt link rel stylesheet type
  • golang context使用reflect遍历获取所有的key和value

    golang中我们经常和context打交道 context实际上可以保存值 源码参见 usr local go src context context go context包中实际上有好几种私有的context类型 type emptyC
  • SpringCache笔记

    SpringCache 一 简介 1 缓存介绍 Spring 从 3 1 开始就引入了对 Cache 的支持 定义了 org springframework cache Cache 和 org springframework cache C