修改缓存供应商--EhCache

news2024/9/20 20:25:51

除了我们默认的缓存形式simlpe之外, 我们其实还有许多其他种类的缓存供应

Ehcache就是其中的一种形式

Ehcache在SpringBoot当中的使用:

其实跟我们之前整合第三方的资源是一样的形式

1>导入依赖:

<!-- 更换缓存, 将默认使用的 Simple 更换为Ehcache--> 
<dependency> 
<groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId>
</dependency>

2>加载对应的配置文件:

配置一:

首先是有关Ehcache的相关配置 , 设置其配置的名称为:

ehcache.xml即可 默认的名称也是这样的

配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

    <!-- 磁盘缓存位置 -->
    <diskStore path="java.io.tmpdir/ehcache"/>

    <!-- 默认缓存 -->
    <defaultCache
            maxEntriesLocalHeap="10000"
            eternal="false"
            timeToIdleSeconds="3600"
            timeToLiveSeconds="3600"
            maxEntriesLocalDisk="10000000"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU"/>
<!--第三个, 以及第四个属性 是用来设置对应的缓存的存在时间的, 超过时间就会自己自动的清空缓存-->
    <cache name="smsCode"
           maxElementsInMemory="60"
           eternal="false"
           timeToIdleSeconds="20"
           timeToLiveSeconds="20"
           overflowToDisk="false"
           memoryStoreEvictionPolicy="LRU"/>
</ehcache>

配置二:

在我们的SpringBoot的配置文件当中修改:

#    设置我们当前使用的缓存, 默认的情况下就是一个 Simple 的类
#  我们也可以自己进行变更, 将其设置成为一个对应的 ehcache的类型
  cache:
    type: ehcache

3>开启缓存

实际上跟之前使用我们默认开启缓存的方式是一样的

第一步都是需要我们在配置类当中打开对应的缓存设置

@SpringBootApplication //配置类当中设置我们当前是允许开启缓存的` @EnableCaching public class Spring19CacheApplication {

之后在我们需要使用的类的方法之上添加对应的注解:

@Cacheable(value=   , key =)

@CachePut(value=, key = )

这里的value指的是我们的实例的缓存  第二个key指的是我们对应的唯一标识

这两个之间的区别还是比较大的, 我们来粗浅的做一下比对, 分析

4>@Cacheable与@CachePut:

@Cacheable:

仅仅第一次获取数据是依靠我们设置的方法进行获取的, 之后再次使用的时候, 都是根据我们的实力缓存当中获取的

@Cacheable(value = "smsCode",key = "#tel")
public String sendCodeToSMS(String tel) {
    System.out.println("==================CachePut方法被执行了!!!!=================");
    String generator = code.generator(tel);
    return generator;
}

使用这种方式, 我们针对同一个手机号, 发送多次请求, 依旧是仅仅只有一个结果

那么就说明我们的方法仅仅只用了一次

之后使用的都是缓存当中的数据了

@CachePut:

每一次都会调用对应的方法, 不是从我们的缓存值当中去拿的, 而是每一次都会将我们的返回值放进缓存内部!

@CachePut(value = "smsCode",key = "#tel")
public String sendCodeToSMS(String tel) {
    System.out.println("==================CachePut方法被执行了!!!!=================");
    String generator = code.generator(tel);
    return generator;
}

比如我们使用手机号获取验证码的一个小功能, 这里发送几次请求, 就有几个返回过来的验证码, 即使是针对同一个的手机号, 在很短的时间内

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

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

相关文章

低代码专题 | 低代码开发平台一般都有哪些功能和模块?

在上一篇文章中&#xff0c;我们已经对低代码开发平台的概念进行了初步的探讨&#xff0c;认识到了低代码开发平台提高开发效率、降低技术门槛方面的巨大潜力。 然而&#xff0c;要真正掌握并应用低代码开发平台&#xff0c;还需要深入了解其背后的功能与模块构成。这篇就对低…

从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件

文章目录 从零开始&#xff1a;如何用Electron将chatgpt-plus.top 打包成EXE文件准备工作&#xff1a;Node.js和npm国内镜像加速下载初始化你的Electron项目创建你的Electron应用运行你的Electron应用为你的应用设置图标打包成EXE文件结语 从零开始&#xff1a;如何用Electron将…

Linux进程间通信之管道

进程间通信介绍&#xff1a; 进程间通信的概念&#xff1a; 进程间通信简称IPC&#xff08;Interprocess communication&#xff09;&#xff0c;进程间通信就是在不同进程之间传播或交换信息。 进程间通信的目的&#xff1a; 数据传输&#xff1a; 一个进程需要将它的数据…

EMC整改学习-笔记

EMC整改学习-笔记 来自赛盛技术的笔记 如果我拿到一个产品超标的一个频谱图的话&#xff0c;首先我们可以对比做一个分析。来确定你干扰源的一个分类和定义是哪些。是你这个产品类型&#xff0c;什么样的电路对应什么样的一个。从我们的一个大量的一个测试数据的经验来看&…

java mybatis处理大数据量,开启和配置二级缓存,及注意事项,已解决

注意事项&#xff1a; 尽量避免使用下面方式写sql否则会降低服务器性能&#xff1a; mybatis二级缓存开启后&#xff0c;避免使用事务注解&#xff08;加上事务注解后二级缓存数据会导致两次访问不一致问题&#xff09;&#xff1a; 3. 返回的对象实体类&#xff0c;要实现Se…

【启明智显彩屏应用】Model3A 7寸触摸屏在真空包装机上的应用解决方案

一、项目背景与需求 随着工业自动化水平的提升&#xff0c;对真空包装机的操作界面和控制精度要求也越来越高。为满足这一需求&#xff0c;我们提出了基于Model3A工业级HMI&#xff08;人机界面&#xff09;芯片方案的7寸触摸屏解决方案&#xff0c;旨在提高真空包装机的操作便…

RabbitMQ一、RabbitMQ的介绍与安装(docker)

一、RabbitMQ相关名词解释 MQ MQ全称Message Queue&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中保存消息的容器。 多用于系统之间的异步通信。 常见的两种通信方式&#xff1a; 同步通信&#xff1a;同步通信相当于两个人当面对话&#xff0c;你一言我…

SD321BF 低功耗单运算放大器芯片IC

一般说明 SD321为低功耗系统带来性能和经济性。具有高单位增益频率和保证0.4V/在此情况下&#xff0c;静态电流仅为430μa/aef(5V)。输入通用模式范围包括地面&#xff0c;因此该设备能够在单电源应用和双电源应用中工作。它还能够舒适地驱动大容量负载。 SD32…

【环境栏Composer】Composer常见问题(持续更新)

1、执行composer install提示当前目录中没有 composer.lock 文件时 No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Composer 在执行 install 命令时会…

单投币的充电桩如何加装一个扫码模块

充电桩需要投币才能充电&#xff0c;可是现在的人们很少有带硬币的习惯&#xff0c;扫码成为了一个常规的手段。我们也会发现有的充电桩无法扫码&#xff0c;或者说扫码无效&#xff0c;那是因为充电桩没有安装扫码模块&#xff0c;那么充电桩该如何加装扫码模块。 首先将充电桩…

搭建智慧互联网医院系统教学:源码解析与在线问诊APP开发

本篇文章&#xff0c;小编将以“源码解析与在线问诊APP开发”为切入点&#xff0c;详细介绍搭建智慧互联网医院系统的过程。 一、智慧互联网医院系统的架构设计 系统架构概述 -前端 -后端 -数据库 功能模块划分 -用户 -预约 -挂号 -问诊、 -病历 -管理 -药品 -配送…

家长必看:学生如何正确使用台灯?精选适合学生写作业的台灯

中国目前面临着严重的近视问题&#xff0c;各学段学生的近视率普遍偏高&#xff0c;且高度近视的占比也不容忽视&#xff0c;儿童近视的问题已经成为了一个不容忽视的社会问题。为了让孩子在学习的过程中拥有更好的视力保护&#xff0c;不少家长会选择购买性价比高、健康护眼的…

深入解析:海外短剧推广平台的流媒体传输技术挑战与应对策略

在海外短剧推广平台的建设和运营过程中&#xff0c;流媒体传输技术扮演着至关重要的角色。然而&#xff0c;由于网络环境的复杂性和多样性&#xff0c;流媒体传输技术面临着诸多挑战。本文将深入解析这些挑战&#xff0c;并提出相应的应对策略。 一、流媒体传输技术的挑战 带…

令人瞠目结舌的8个ChatGPT-4o提示词

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【关于傅里叶变换的一系列问题】

1. 为什么频率分辨率是 f s N \frac{f_s}{N} Nfs​​&#xff1f; 因为采样率 f s {f_s} fs​ 决定了最大频率范围&#xff08;奈奎斯特频率&#xff09;。时域信号长度 &#x1d441;决定了频域中的离散点数。DFT对长度为 &#x1d441;的时域信号进行变换&#xff0c;得到…

LVGL的移植

对这个源文件进行一定的裁剪&#xff0c;其余文件保留&#xff1a; 之后将examples中得文件进行裁剪&#xff0c;只保留输入输出设备文件porting 流程&#xff1a; 1&#xff0c;确定输入输出的设备 2&#xff0c;确定所需的可选功能 3&#xff0c;准备LVGL库、历程 4&#xf…

OSG天空图代码

osgEarth // 创建天空选项osgEarth::Util::SkyOptions skyOptions;// 设置天空的坐标系统&#xff08;可选&#xff09;skyOptions.coordinateSystem() osgEarth::Util::SkyOptions::COORDSYS_ECEF;// 设置一天中的小时数&#xff08;可选&#xff09;skyOptions.hours() 12.…

Vulnhub-DC-3

joomla3.7.0的提权 信息收集 靶机IP:192.168.20.136 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 首先nmap扫端口和版本&#xff0c;dirsearch跑下目录&#xff0c;wappalyzer也可以用下 发现服务器用的ubuntu&#xff0c;JoomlaCMS…

实验9 浮动静态路由配置

--名称-- 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 浮动静态路由也是一种特殊的静态路由&#xff0c;主要考虑链路冗余。浮动静态路由通过配置一条比主路由优先级低的静态路由&#xff0c;用于保证在主路由失效的情况下&#xff0c;…

RabbitMQ小结

MQ分类 Acitvemq kafka 优点&#xff1a;性能好&#xff0c;吞吐量高百万级&#xff0c;分布式&#xff0c;消息有序 缺点&#xff1a;单机超过64分区&#xff0c;cpu会飙高&#xff0c;消费失败不支持重试 &#xff0c; Rocket 阿里的mq产品 优点&#xff1a;单机吞吐量也…