spring boot 使用ehcache 实现缓存

Spring Boot学习笔记:集成EhCache和RedisCache实现缓存 Maven依赖配置 <!-- 引入 spring-boot-starter-web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </... 阅读详情

所谓缓存是一种存储机制,可将数据保存在某一个地方,并以一种更快的方式为以后的请求提供服务

spring 对于缓存提供了声明式缓存注解 ,并提供了四种类型的声明式缓存注解(同样是使用了AOP 技术实现),这些注解定义了那些 方法的返回值将要被缓存或者从缓存存储器中移除 ,需要注意的是,只有使用public 定义的方法才可以被缓存,当在一个类上使用注解时,该类中的每个公共方法都将被缓存到给定的存储器中或者从给定的存储器中移除

这四个注解如下

  1. @Cacheable
    应用到读取数据的方法上,即可缓存的方法,如查找方法:先从缓存中读取,如果没有,再调用方法获取数据,然后把数据添加到缓存中,适用于查找 @Cacheable 有以下属性
    value: 用于指定缓存器的名称 ,当然也可以在类上声明缓存器的名称 使用@CacheConfig(cacheNames = “userCache”) 声明
    key: 键生成器 ,缓存值的键 ,在默认情况下,缓存抽象使用方法签名以及参数值作为一个键值 ,并将该键和方法调用的结果组成键值对 ,当然也可以使用 key 自定义键 同时 使用EL 表达式将值注入
    condition 条件缓存 使用condition 属性 ,可以根据条件对一个方法应用缓存
  2. @CachePut
    该注解与Cacheable 完成相同的工作,它通常首先执行方法,然后返回值到缓存。 该注解适合使用返回值来更新缓存存储器
  3. @CacheEvict
    将一条或多条数据从缓存中删除,该注解常用于用户更新或删除操作对现有数据进行操作 也提供了 key 和 condition 属性 ,可以通过这些属性完成自定义键和条件
  4. @Caching
    通过该注解可以组合多个注解策略在一个方法上

spring boot 集成ehcache 实现数据缓存

  1. 加入依赖
<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-cache</artifactId>
		</dependency>
		<dependency>
			<groupId>net.sf.ehcache</groupId>
			<artifactId>ehcache</artifactId>
		</dependency>
  1. 配置 eache.xml 文件
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

    <cache name="userCache"
           eternal="false"
           maxEntriesLocalHeap="0"
           timeToIdleSeconds="12000"/>
	<!--  name 表示缓存名,可以配置多个 ,在需要使用cache 的地方使用 @CacheConfig(cacheNames = "cacheName") 引用 -->
    <!-- eternal:true表示对象永不过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false -->
    <!-- maxEntriesLocalHeap:堆内存中最大缓存对象数,0没有限制 -->
    <!-- timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。当对象自从最近一次被访问后,
    如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期,EHCache将把它从缓存中清空。
    只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地处于空闲状态 -->
</ehcache>
  1. 在启动类上使用@EnableCaching 注解
@SpringBootApplication
@EnableCaching
public class SpingbootmybatisApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpingbootmybatisApplication.class, args);
	}
}
  1. 在具体方法上使用对应的ehcache 标签 以及@CacheConfig(cacheNames = “cacheName”) 设置了ehcache的名称,这个名称就是ehcache.xml内的名称
    /**
     *    @Cacheable(key = "#id") 应用到读取数据的方法上,即可缓存的方法,如查找方法:先从缓存中读取,如果没有再调 用方法获取数据,然后把数据添加到缓存中,适用于查找
     * @param id
     * @return
     */
    @Cacheable(key = "#id")
    @Override
    public User findUserById(int id) {
        return userMapper.selectByPrimaryKey(id);
    }

/**
     *     @CachePut 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存,和 @Cacheable 不同的是,它每次都会触发真实方法的调用。适用于更新和插入
     * @param user
     */
    @Override
    @CachePut
    public void insertUser(User user) {
        userMapper.insertSelective(user);
    }
/**
     * @CacheEvict 主要针对方法配置,能够根据一定的条件对缓存进行清空。适用于删除
     * @param id
     */
    @CacheEvict(key = "#id")
    @Override
    public void deleteUserById(int id) {
        userMapper.deleteByPrimaryKey(id);
    }

缓存的使用,很多时候需要根据实际的业务逻辑进行选择和设置。 更多的是需要和业务场景匹配已达到最好的使用效果,当然也可以使用redis 来实现(主要是通过修改cacheManager 来实现),后面会接着更新
demo 代码:srping boot 使用ehcache 实现缓存

eache 缓存 立即下载

相关推荐

注册电气工程师详细教材

注册电气工程师详细教材

qq_40844444的博客 4242

java技术--缓存机制之EHCache(基于hibernate的默认缓存实现方式)

hibernate缓存:一级缓存,二级缓存(https://mp.youkuaiyun.com/mdeditor) 1.一级缓存:即session级别的缓存,亦即事务级别的缓存策略,这种缓存策略是Hibernate内置的,不可被拆卸的 2.二级缓存:即SessionFactory的外置缓存,其同时也称为进程级缓存或集群范围内的缓存。 hibernate的二级缓存是需要第三方支持的,hibernate默认的二级...

qq591009234的博客 487

UnityWebGL异常捕获全攻略:从报错提示到完美解决的3种配置方案

本文详细解析了UnityWebGL项目中异常捕获的三种核心配置方案:禁用异常、仅捕获显式异常以及完全捕获异常(无堆栈跟踪)。通过对比不同方案在构建体积、运行性能及错误信息详细度上的差异,帮助开发者根据开发、测试与发布阶段的不同需求,选择并配置最优的异常处理策略,从而有效提升WebGL应用的调试效率和线上稳定性。

5f4d3s2a1q的博客 398

SpringBoot使用EhCache做数据缓存

SpringBoot使用Eache作为数据缓存是基于SpringBoot对缓存的支持来做的,不了解的查看上一篇文章SpringBoot整合Cache,本文demo也是在上一个基础之上改造的。 使用EhCache作为缓存技术的时候,需要在pom.xml中添加EhCache的依赖: <!--ehcache--> <dependency> <groupId>net.sf.ehcache</groupId>

qq_25453181的博客 655

Unity Tilemap瓦片动态缩放:保持网格尺寸不变的三种实现方案

本文详细探讨了在Unity中实现Tilemap瓦片动态缩放同时保持网格尺寸不变的三种核心方案。针对编辑器静态调整、整体风格化处理及运行时动态控制等不同场景,分别解析了直接修改瓦片属性、调整Tilemap Renderer材质参数以及使用SetTransformMatrix与Matrix4x4矩阵变换的实践方法、优缺点及选型指南,为2D游戏开发提供灵活高效的视觉与交互解决方案。

grass的博客 626

RK3588部署Zipformer模型问题总结

本文分享了在RK3588嵌入式设备上部署小米Zipformer语音识别模型时遇到的问题及解决方法。主要遇到两个问题:1)在rknn_model_zoo例程编译时出现静态库版本不兼容,通过重新编译kaldi-native-fbank库并修改链接路径解决;2)sherpa-onnx编译时提示缺少portaudio库,通过修改编译脚本启用相关宏定义后成功编译。最终成功在RK3588上运行Zipformer模型,测试结果显示该模型具有较好的识别效果和实时性(RTF=0.22),验证了其在边缘设备上的适用性。

pkyang2004的博客 2143

ehcache学习

name:Cache的唯一标识 maxElementsInMemory:内存中最大缓存对象数 maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大 eternal:Element是否永久有效,一但设置了,timeout将不起作用 overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory

大飞的博客 563

YOLOv5 自定义模型 Android 部署完整指南

本文详细介绍了将YOLOv5模型部署到Android设备的完整流程,包含三个核心部分:首先验证官方模型测试,确保基础环境配置正确;随后进行模型转换,从PyTorch导出ONNX格式并优化,再转换为NCNN格式;最后在Android项目中集成自定义模型,包括文件替换、参数修改和代码适配。教程基于YOLOv5 6.1版本,使用NCNN框架进行移动端推理,涵盖了常见问题解决方案和关键配置要点,为开发者提供了从训练到部署的完整技术路线。

FJN110的博客 591

EhCache使用

授权数据缓存优化 每次需要shiro做权限控制, Realm的授权方法就会被调用, 查询数据库重新完成授权! 问题: 性能开销比较大 解决: 对用户授权,只进行一次 查询,查询后,将用户授权信息放入缓存中,以后需要授权时,直接从缓存中获取数据,而无需查询数据表 JavaEE开发主流缓存技术 : http://www.open-open.com/ Java开源大全 最熟悉: EhCache 使用Spring框架 集成 EhCache 步骤一: 在项目中导入 Ehcache的jar 包 net.sf.eh.

woaini886353的博客 2229

基于深度学习的推荐系统设计与实现

基于深度学习的推荐系统设计与实现 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming / TextGenWebUILLM 基于深度学习的推荐系统设计与实现 关键词:深度学习, 推荐系统, 用

AI天才研究院 1078

Python 陌生代码库阅读之道:从零起步到一周掌控 5 万行老项目的实战策略

文中特别强调"自顶向下+画图+注释"的基础阅读心法,并提供了具体的代码示例和命令行技巧。对于大型项目,建议先建立核心流程的骨架认知,再逐步填充细节,同时注重文档化和测试覆盖率的提升。 掌握这套方法后,开发者可以将陌生代码库的阅读效率提升3倍以上,在一周内建立起对5万行级别项目的整体掌控力。

铭渊老黄 506

EhCache初体验

一、简介   EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。     主要的特性有:  快速  简单  多种缓存策略 缓...

weixin_34306446的博客 954

ASProxy64.dll导致jetbrains家的IDE都无法打开。

摘要:在Windows11系统中,JetBrains IDE无法启动,报错指向ASProxy64.dll文件。该第三方DLL被注入到JVM原生层,导致内存访问冲突(错误代码0xc0000005)。经排查发现此文件来自Astrill软件。解决方案为卸载Astrill后重启电脑,问题得以解决。该案例表明第三方DLL注入可能影响IDE正常运行,卸载相关软件是最直接的解决方法。(149字)

猿小白的博客 935

深入解析 Spring Boot 集成 Ehcache:实现高效本地缓存的完整指南

Ehcache 的强大之处在于其灵活的配置机制,通过配置文件,开发者可以轻松定义缓存的行为,例如缓存的过期策略、存储容量以及数据存储的位置等。在 Spring Boot 项目中,Ehcache 的配置文件通常命名为,并放置在项目的resources目录下。

1584

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring Boot2.0+Redis+Ehcache实现二级缓存

Spring Boot2.0+Redis+Ehcache实现二级缓存 EHCache 本地缓存 Redis 分布式缓存(可以共享) 一级 Redis 二级Ehcache 当redis挂了 有备胎 反之: 先走本地,本地没有再走网络 尽量少走Redis 效率会高一些 Redis与数据库的区别: 相同点 都是需要进行网络连接 不同点 是存放的介质...

art_code的博客 1192

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ehcache java实现,JAVA语言之spring-boot整合ehcache实现缓存机制的方法[Java代码]

本文主要向大家介绍了JAVA语言的spring-boot整合ehcache实现缓存机制的方法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题。spring-boot是一个快速的集...

weixin_39949506的博客 201

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【spring-boot】spring-boot集成ehcache实现缓存机制

EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。   ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题。   spring-boot是一个快速的集成框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样

小告白 784

Spring Boot中使用EhCache实现缓存支持

SpringBoot提供数据缓存功能的支持,提供了一系列的自动化配置,使我们可以非常方便的使用缓存。,相信非常多人已经用过cache了。因为数据库的IO瓶颈。一般情况下我们都会引入非常多的缓存策略,例如引入redis,引入hibernate的二级缓存等。SpringBoot在annotation的层面给我们实现了cache,得益于Spring的AOP。所有的缓存配置只是在annotation...

weixin_30326515的博客 139

Spring boot 整合 ehcache 2.x 3.x -本地缓存以及持久化实现

Spring boot 整合 Ehcache 2.x 、3.x 实现本地缓存,以及数据持久化

何xiao树 1117

spring-boot整合ehcache实现缓存机制

【spring-boot】spring-boot整合ehcache实现缓存机制  EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。  ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题。  spring-boot是一个快速的集成框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过...

daily_Strong的博客 432

Spring boot基于Ehcache的内存缓存策略实现

EhCache 是一个纯Java的进程内缓存框架,具有快速熟悉、上手简单等特点,是Hibernate框架默认的缓存提供方。hibernate提供了两级缓存,分别为一级session级缓存策略,二级是SessionFactory对象缓存。在此基础上可以配置三层查询缓存也就是整合此次介绍的Ehcache。一级缓存:基于session级别的分配的一块内存空间,一般情况下session对象的生命周期对应的是一数据库事物或应用事物,因此它的缓存是事务范围的缓存,是一个必须的缓存。二级缓存。

LQzhang_11的博客 1830

spring boot 整合 EHcache 实现本地缓存

需要的依赖如下,pom文件添加 &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-cache&lt;/artifactId&gt; &lt;/depende...

玫瑰小屋的博客 441

Spring Boot Learning Examples中的缓存策略:Caffeine与Ehcache实现方案

在Spring Boot开发中,高效的缓存策略是提升应用性能的关键。Spring Boot Learning Examples项目提供了全面的缓存实现方案,包括Caffeine和Ehcache两种主流缓存技术,帮助开发者快速掌握缓存配置与应用技巧。 ## 🚀 为什么选择Caffeine与Ehcache? 缓存是减少数据库访问、提升系统响应速度的重要手段。Spring Boot Learnin

gitblog_00976的博客 454

Token双线演化:从认证令牌到NLP词元,术语、分词与计费全解析

Token作为技术领域的高频概念,在身份认证中代表一次性凭证,在自然语言处理中则指模型处理的最小单元——词元。其核心原理是将复杂信息压缩为可操作的最小单位,认证token通过签名验证实现无状态身份校验,而NLP词元借助子词切分算法(如BPE、WordPiece)将文本离散化为词表ID。理解这一双重含义对开发者至关重要:既能避免将认证token失效与模型词元超限混淆,又能精准控制大模型按词元计费的成本。在登录续签、JWT验证、tokenizer分词、多模态词元化等场景中,术语统一和词元数量估算直接影响系统设计

WGH100817的博客 322

Spring Boot整合Ehcache实现缓存功能

这里介绍Spring Boot结合JPA,MySQL和Ehcache实现缓存功能,提高程序访问效率。一、Maven依赖主要依赖如下所示:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/

脚踏实地,慢慢来 1万+
上一篇: Spring 声明式事务管理
下一篇: SpringBoot基于注解的面向切面编程
Sean_zzZ
博客等级 码龄10年 18粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值