SpringBoot优雅的集成EhCache

最近在开发一个新项目,用的框架(中间件)比较多,所以最近的文章,都会以优雅的实战为主,也可以是框架(中间件)的简单DEMO。

今天给大家带来EhCache在SpringBoot框架下使用实战。

简介

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

注意概念中的关键词进程内,他传递了两个关键点:

  1. 速度快(进程内剔除了各种切换资源的损耗);
  2. 单机适用;

现在我们说缓存,迅速想到的绝对是我们的Redis,其实在Java生态下,有很多场景我们用EhCache更合理。

我这里简单的区分一下什么时候使用Redis,什么时候使用EhCache。

当我们的缓存需要多个进程(分布式)共享的时候,使用Redis,如果只是单机、单应用内的常见缓存,使用EhCache。

这篇文章不介绍太多的概念与配置,比较偏实战,老规矩,上导读图,直接进入实战环节。

SpringBoot优雅的集成EhCache_第1张图片

优雅的集成EhCache

SpringBoot集成实战

创建项目

SpringBoot优雅的集成EhCache_第2张图片

创建Maven项目

引入依赖

分别引入spring-boot-starter-web、spring-boot-starter-cache、cache-api、ehcache四个包


        
            org.springframework.boot
            spring-boot-starter-web
            2.6.1
        
        
            org.springframework.boot
            spring-boot-starter-cache
            2.6.1
        
            javax.cache
            cache-api
            1.1.1
        
        
            org.ehcache
            ehcache
            3.8.1
        
    

记得刷新Maven引用

SpringBoot优雅的集成EhCache_第3张图片

刷新Maven引用

配置启动类

SpringBoot优雅的集成EhCache_第4张图片

配置启动类

指定配置

新建配置文件 application.properties 和 ehcache.xml

SpringBoot优雅的集成EhCache_第5张图片

application.properties内容

ehcache.xml定义一个缓存模块,指定key和value的类型,指定过期时间。



    
        java.lang.String
        java.lang.String
        
            30
        

        
            2
            10
        
    

增加配置注解config文件

SpringBoot优雅的集成EhCache_第6张图片

通过配置注解开启EhCache

模拟场景

从控制器进入查找用户,查看是否多次调用Service的接口。

SpringBoot优雅的集成EhCache_第7张图片

整体代码结构

SpringBoot优雅的集成EhCache_第8张图片

控制器入口

SpringBoot优雅的集成EhCache_第9张图片

service定义

场景测试

通过启动类,启动服务。

浏览器访问:http://localhost:8001/user/1

SpringBoot优雅的集成EhCache_第10张图片

浏览器访问结果

第一次控制台输出:

SpringBoot优雅的集成EhCache_第11张图片

第一次控制台输出

之后刷新不会有变化,过了30s之后又会重新进入方法。

事件监听

在ehcache.xml增加监听配置


            
                com.baeldung.cachetest.config.CacheEventLogger
                ASYNCHRONOUS
                UNORDERED
                CREATED
                EXPIRED
            
        

测试监听

刷新浏览器测试

SpringBoot优雅的集成EhCache_第12张图片

第一次访问

SpringBoot优雅的集成EhCache_第13张图片

30秒之后刷新

注意有一个过期的事件。

源代码地址

好了,EhCache简单的实战就到这里结束了,源码可以从 https://github.com/lianbian/EhCache 查看

你可能感兴趣的:(Java,java)