springboot整合EHCache的实践方案

 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

  ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题。

  spring-boot是一个快速的集成框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

用户登录之后,几乎之后展示任何页面都需要显示一下用户信息。可以在用户登录成功之后将用户信息进行缓存,之后直接取缓存数据即可。

写在前面

对于SpringBoot而言,内置了属于自己的缓存框架,即:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

如何使用该框架进行缓存,网上一大堆资料。但是绝大多数都是描述如何在service层进行缓存,之后从数据库取数据的时候直接拿缓存数据,不再进行二次查询了。 但是我目前的需求仅仅是缓存登录用户,下次直接用代码取出来。而不是再调一次service方法!貌似搜到任何资料!可能大家都没遇到过吧。

探索方案

在之前的项目中,曾经用到过EHcache,当然也有对应的EHCacheUtils方法。下面就说一下springboot和ehcache的整合。

真实操作之后,发现整合ehcache非常简单,三步即可:

导入maven包

<dependency>
 <groupId>net.sf.ehcache</groupId>
 <artifactId>ehcache</artifactId>
 <version>2.10.1</version>
</dependency>

在启动类开启缓存机制

image.png

添加ehcache配置文件,直接在resources下面新建ehcache.xml文件即可。文件配置如下:

<?xml version="1.0" encoding="UTF-8" ?>
<ehcache>
 <cache name="objectCache" maxElementsInMemory="1000"></cache>
</ehcache>

使用缓存

此时,springboot已经为ehcacheManager生成了一个Bean。我们在自己需要的地方直接注入即可。下面是我的简单utils文件和存数据取数据的地方,仅供参考。有不对的地方,欢迎指正。

util如下,只提供set和get方法:

public class EHCacheUtils {
 /**
  * 设置缓存对象
  * @param cacheManager
  * @param key
  * @param object
  */
 public static void setCache(CacheManager cacheManager,String key,Object object){
  Cache cache = cacheManager.getCache("objectCache");
  Element element = new Element(key,object);
  cache.put(element);
 }
 /**
  * 从缓存中取出对象
  * @param cacheManager
  * @param key
  * @return
  */
 public static Object getCache(CacheManager cacheManager,String key){
  Object object = null;
  Cache cache = cacheManager.getCache("objectCache");
  if(cache.get(key)!=null && !cache.get(key).equals("")){
   object = cache.get(key).getObjectValue();
  }
  return object;
 }
}

存入缓存方法如下:

@Autowired
private CacheManager cacheManager;
//部分关键代码
EHCacheUtils.setCache(cacheManager,"op",searchOP);

取出缓存方法如下:

@Autowired
private CacheManager cacheManager;
Operator searchOP = (Operator) EHCacheUtils.getCache(cacheManager,"op");

写在最后

个人觉得,springboot提供的基于注解的方式进行缓存更加适合拦截器的方式去处理。对应指定的请求均去走设置了缓存机制的service方法,该sevice会根据实际情况去直接取缓存或者查询数据库。

总结

以上所述是小编给大家介绍的springboot整合EHCache的实践方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • springboot+EHcache 实现文章浏览量的缓存和超时更新
  • 详解spring boot集成ehcache 2.x 用于hibernate二级缓存
  • 详解SpringBoot缓存的实例代码(EhCache 2.x 篇)
  • Spring Boot缓存实战 EhCache示例
  • spring-boot整合ehcache实现缓存机制的方法
  • springboot整合ehcache 实现支付超时限制的方法
(0)

相关推荐

  • springboot整合ehcache 实现支付超时限制的方法

    下面给大家介绍springboot整合ehcache 实现支付超时限制的方法,具体内容如下所示: <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.6.11</version> </dependency> pom文件中引入ehcache依赖 在类路径下存放ehcache.

  • 详解SpringBoot缓存的实例代码(EhCache 2.x 篇)

    本篇介绍了SpringBoot 缓存(EhCache 2.x 篇),分享给大家,具体如下: SpringBoot 缓存 在 spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),Spring Boot根据下面的顺序去侦测缓存提供者: Generic JCache (JSR-107) EhCache 2.x Hazelcast Infinispan Redis Guava Simple 关于 Spring Boot 的缓存机制: 高速

  • springboot+EHcache 实现文章浏览量的缓存和超时更新

    问题描述 当我们需要统计文章的浏览量的时候,最常规的做法就是: 1.访问文章链接www.abc.com/article/{id} 2.在控制层获取Article实体 3.得到文章浏览量count并且count++ 4.最后update实体Article. 这么做对没有访问量的网站来说很棒,如果网站访问量很大,这么不停的读写数据库,会对服务器造成很大的压力. 解决思路 引入Ehcache,将文章的访问量存在cache中,每点击一次文章,将cache中的count加1.在有效的时间内访问文章只是将c

  • 详解spring boot集成ehcache 2.x 用于hibernate二级缓存

    本文将介绍如何在spring boot中集成ehcache作为hibernate的二级缓存.各个框架版本如下 spring boot:1.4.3.RELEASE spring framework: 4.3.5.RELEASE hibernate:5.0.1.Final(spring-boot-starter-data-jpa默认依赖) ehcache:2.10.3 项目依赖 <dependency> <groupId>org.springframework.boot</gro

  • spring-boot整合ehcache实现缓存机制的方法

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

  • Spring Boot缓存实战 EhCache示例

    Spring boot默认使用的是SimpleCacheConfiguration,即使用ConcurrentMapCacheManager来实现缓存.但是要切换到其他缓存实现也很简单 pom文件 在pom中引入相应的jar包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<

  • springboot整合EHCache的实践方案

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题. spring-boot是一个快速的集成框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 用户登录之后,几乎之后展示任何页面都需要显示一下用户信息.可以在用户登录成功之后将用户信息进行缓存,之后直

  • 详解springboot整合ehcache实现缓存机制

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

  • SpringBoot整合OpenApi的实践

    目录 SpringBoot整合OpenApi OpenAPI依赖 编写配置类 改造优化 OpenAPI常用注解介绍 实体类 controller类 演示 网上经常可以看到OpenAPI和Swagger相关的词汇,总是傻傻分不清,这里先简单介绍一下Swagger个OpenAPI的联系. OpenAPI是规范:Swagger是实现规范的工具. OpenAPI 3.0是该规范的第一个正式版本,因为它是由SmartBear Software捐赠给OpenAPI Initiative,并在2015年从Sw

  • springboot 整合EhCache实现单服务缓存的操作方法

    目录 一.整合Spring Cache 与Ehcache 二.缓存的使用方法 三.缓存使用中的坑 在Spring框架内我们首选Spring Cache作为缓存框架的门面,之所以说它是门面,是因为它只提供接口层的定义以及AOP注解等,不提供缓存的具体存取操作.缓存的具体存储还需要具体的缓存存储,比如EhCache .Redis等.Spring Cache与缓存框架的关系有点像SLF4j与logback.log4j的关系. EhCache 适用于单体应用的缓存,当应用进行分布式部署的时候,各应用的副

  • springboot整合单机缓存ehcache的实现

    区别于redis的分布式缓存,ehcache是纯java进程内的单机缓存,根据不同的场景可选择使用,以下内容主要为springboot整合ehcache以及注意事项 添加pom引用 <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.9.2</version> </dependenc

  • Spring Boot整合EhCache的步骤详解

    本文讲解Spring Boot与EhCache的整合. 1 EhCache简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认CacheProvider.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点. 2 Spring Boot整合EhCache步骤 2.

  • springboot整合security和vue的实践

    目录 环境 1.security参考资料 认证流程原理: 2.springboot整合security要点 2.1获取登录用户信息 2.2自定义登入登出url 2.3自定义Handler返回json 2.4记住我功能 2.5验证码功能 2.6限制登录次数 2.7密码加密 2.8后台提供接口,返回前端json,整合vue做前端登入登出 3.测试 环境 springboot1.5.9 完整代码,内有sql,先建库,在运行sql建表,sql中已插入测试的数据. https://github.com/2

  • SpringBoot整合Mybatis自定义拦截器不起作用的处理方案

    目录 SpringBoot整合Mybatis自定义拦截器不起作用 1. 原始的读取mybatis-config.xml文件 2. 与SpringBoot容器整合 2.1 mybatis的自动装载 3. 在mybatis-config.xml配置又放入Spring容器 SpringBoot 自定义Mybatis拦截器 第一种 第二种 第三种 SpringBoot整合Mybatis自定义拦截器不起作用 Mybatis插件生效的方式: 1. 原始的读取mybatis-config.xml文件 该方式和

随机推荐