程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入门

  • 后端手册

  • 前端手册

  • 组件文档

  • 数据库分析

  • 集成插件

    • 集成 Docker 实现一键部署
    • 升级 Spring Boot 到 3.x 版本
    • 集成 Ehcache 实现本地缓存切换
      • 1. 添加 spring-cache 和 ehcache 依赖
      • 2. 配置 application.yml 文件
      • 3. 创建 Ehcache 配置文件
      • 4. 插件相关包和代码实现
      • 5. 测试验证
    • 集成 WebSocket 实现实时通信
    • 集成 Electron 实现桌面应用程序
    • 集成 Atomikos 实现分布式事务
    • 集成 MinIO 实现分布式文件存储
    • 集成 Easy-ES 实现分布式全文检索
    • 使用 `localStorage` 代替 `cookie`
    • 使用 Undertow 替代 Tomcat 容器
    • 集成 Actuator 实现优雅关闭应用
    • 集成 AJ-Captcha 实现滑块验证码
    • 集成 Sharding-JDBC 实现分库分表
    • 集成 JustAuth 实现第三方授权登录
    • 集成 `watermark-dom` 实现页面水印
    • 集成 MyBatis-Plus 实现 MyBatis 增强
    • 集成 EasyExcel 实现 Excel 表格增强
    • 集成 Knife4j 实现 Swagger 文档增强
    • 集成 Redisson 实现 Redis 分布式锁
    • 集成 IP2Region 实现离线 IP 地址定位
    • 42集成 JSEncrypt 实现密码加密传输
    • 集成 HttpClient 实现 HTTP 接口增强
    • 集成 Druid 实现数据库密码加密功能
    • 集成 Browscap 实现用户代理解析
    • 集成 Dynamic-DataSource 实现多数据源增强
  • 若依框架
  • 集成插件
scholar
2024-08-31
目录

集成 Ehcache 实现本地缓存切换

# 集成 Ehcache 实现本地缓存切换详细步骤

在一些项目中,由于规模较小,不需要使用 Redis 作为缓存服务,集成 Ehcache 可以实现将缓存数据存储在本地,从而简化项目部署。


# 1. 添加 spring-cache 和 ehcache 依赖

首先,需要在 pom.xml 文件中添加 spring-cache 和 ehcache 的依赖,以启用 Spring 的缓存功能并支持 Ehcache。

<!-- Spring Cache 依赖配置 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

<!-- Ehcache 缓存管理器 -->
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
</dependency>
1
2
3
4
5
6
7
8
9
10
11

如果项目中有多个模块,需要在 ruoyi-common/pom.xml 中重复添加这些依赖。


# 2. 配置 application.yml 文件

在 ruoyi-admin 项目的 application.yml 文件中添加缓存配置,指定缓存类型为 ehcache,并配置相关参数。

spring:
  cache:
    # 指定缓存类型:ehcache 或 redis
    type: ehcache
    ehcache:
      config: classpath:ehcache.xml # 指定 Ehcache 配置文件的路径
    redis:
      time-to-live: 86400000 # 缓存的存活时间(ms)
      use-key-prefix: true # 是否使用缓存前缀
      cache-null-values: true # 是否缓存空值,防止缓存穿透
1
2
3
4
5
6
7
8
9
10

在此配置中,type 属性控制使用哪种缓存类型。如果需要切换为 Redis,只需将 type: ehcache 改为 type: redis。


# 3. 创建 Ehcache 配置文件

在 src/main/resources 目录下创建 ehcache.xml 文件,用于配置 Ehcache 缓存策略。

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">

    <diskStore path="java.io.tmpdir"/>

    <cache name="defaultCache"
           maxEntriesLocalHeap="1000"
           eternal="false"
           timeToIdleSeconds="300"
           timeToLiveSeconds="600"
           diskSpoolBufferSizeMB="20"
           maxEntriesLocalDisk="10000"
           diskExpiryThreadIntervalSeconds="120"
           memoryStoreEvictionPolicy="LRU"
           statistics="true">
        <persistence strategy="localTempSwap"/>
    </cache>

    <!-- 可以根据需要添加更多的缓存配置 -->
</ehcache>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

该文件配置了一个名为 defaultCache 的缓存区域,设置了最大堆内存条目数、闲置时间、存活时间等参数。根据需求,可以在文件中添加更多的缓存配置。


# 4. 插件相关包和代码实现

为了简化配置,插件相关的代码和配置已封装在 ruoyi-vue/集成ehcache实现本地缓存切换.zip 中。请下载并解压,按照提示将文件覆盖到项目中。

下载链接: 集成 Ehcache 实现本地缓存切换 (opens new window)
提取码: mjs7


# 5. 测试验证

完成上述配置后,关闭 Redis 服务,启动 RuoYi 项目。通过登录和其他操作验证本地缓存的效果。如果需要切换回 Redis,只需在 application.yml 中将缓存类型从 ehcache 切换为 redis,然后重新启动项目。


# 注意事项

  • 确保 ehcache.xml 文件路径正确,并且配置文件内容符合实际项目需求。
  • 切换缓存类型时,需要重新启动应用程序以使配置生效。

通过以上步骤,你可以成功集成 Ehcache 实现本地缓存切换,同时保留使用 Redis 作为缓存的能力。这一配置在保证灵活性的同时,也提供了简洁的项目部署方案。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
升级 Spring Boot 到 3.x 版本
集成 WebSocket 实现实时通信

← 升级 Spring Boot 到 3.x 版本 集成 WebSocket 实现实时通信→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式