文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring+EHcache缓存实例详解

2023-05-31 09:47

关注

一、ehcahe的介绍

EhCache 是一个纯Java的进程内缓存框架,具有高速、精干等特点,是Hibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。

主要面向通用缓存,Java EE和轻量级容器。

它具有内存和磁盘存储。缓存载入器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器。支持REST和SOAP api等特点。

优点:

高速
2. 简单
3. 多种缓存策略
4. 缓存数据有两级:内存和磁盘,因此无需操心容量问题
5. 缓存数据会在虚拟机重新启动的过程中写入磁盘
6. 能够通过RMI、可插入API等方式进行分布式缓存
7. 具有缓存和缓存管理器的侦听接口
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
9. 提供Hibernate的缓存实现

缺点:

使用磁盘Cache的时候很占用磁盘空间:这是由于DiskCache的算法简单。该算法简单也导致Cache的效率很高。它仅仅是对元素直接追加存储。因此搜索元素的时候很的快。假设使用DiskCache的,在很频繁的应用中,很快磁盘会满。
2. 不能保证数据的安全:当突然kill掉java的时候,可能会产生冲突,EhCache的解决方法是假设文件冲突了。则重建cache。这对于Cache数据须要保存的时候可能不利。当然,Cache仅仅是简单的加速。而不能保证数据的安全。假设想保证数据的存储安全,能够使用Bekeley DB Java Edition版本号。

这是个嵌入式数据库。能够确保存储安全和空间的利用率。

EhCache的分布式缓存有传统的RMI,1.5版的JGroups,1.6版的JMS。分布式缓存主要解决集群环境中不同的server间的数据的同步问题。

使用Spring的AOP进行整合,能够灵活的对方法的返回结果对象进行缓存。

以下将介绍Spring+EhCache具体实例。

二、具体实例解说

本实例的环境 eclipse + maven + spring + ehcache + junit

1、相关依赖pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.luo</groupId> <artifactId>ehcache_project</artifactId> <version>0.0.1-SNAPSHOT</version> <properties>  <!-- spring版本号号 -->  <spring.version>3.2.8.RELEASE</spring.version>  <!-- junit版本号号 -->  <junit.version>4.10</junit.version> </properties> <dependencies>  <!-- 加入Spring依赖 -->  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-core</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-webmvc</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-context</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-context-support</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-aop</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-aspects</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-tx</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-jdbc</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-web</artifactId>   <version>${spring.version}</version>  </dependency>  <!--单元測试依赖 -->  <dependency>   <groupId>junit</groupId>   <artifactId>junit</artifactId>   <version>${junit.version}</version>   <scope>test</scope>  </dependency>  <!--spring单元測试依赖 -->  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-test</artifactId>   <version>${spring.version}</version>   <scope>test</scope>  </dependency>  <!-- ehcache 相关依赖 -->  <dependency>   <groupId>net.sf.ehcache</groupId>   <artifactId>ehcache</artifactId>   <version>2.8.2</version>  </dependency> </dependencies></project>

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯