springboot 中使用ehcache缓存

Ehcache 也是 Java 领域比较优秀的缓存方案之一Spring Boot 中对此也提供了很好的支持,这个支持主要是通过 Spring Cache 来实现的。

ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持RESTSOAP api等特点。

项目地址:https://github.com/heng1234/springboot2.x/tree/master/boot_cache

Spring cache缓存注解介绍

image-20191104165723372
image-20191104165758199
image-20191104165818379

@CacheConfig

这个注解在类上使用,用来描述该类中所有方法使用的缓存名称,当然也可以不使用该注解,直接在具体的缓存注解上配置名称

@Cacheable

这个注解一般加在查询方法上,表示将一个方法的返回值缓存起来,默认情况下,缓存的 key 就是方法的参数,缓存的 value 就是方法的返回值。

@CachePut

这个注解一般加在更新方法上,当数据库中的数据更新后,缓存中的数据也要跟着更新,使用该注解,可以将方法的返回值自动更新到已经存在的 key 上

@CacheEvict

这个注解一般加在删除方法上,当数据库中的数据删除后,相关的缓存数据也要自动清除,该注解在使用的时候也可以配置按照某种条件删除( condition 属性)或者或者配置清除所有缓存( allEntries 属性)

开始使用ehcache

pom.xml引入

yml配置

需要说明的是config:classpath:/ehcache.xml可以不用写,因为默认就是这个路径。但ehcache.xml必须有。

ehcache.xml

resources目录下新建config文件夹,在文件夹中建立ehcache.xml文件。

使用缓存 UserService

UserMapper

mapper.xml

controller

访问http://localhost:7007/user/findUserById.do?id=1

第一次会查询数据库

第二次会进入缓存不会访问数据库

接着访问修改数据

http://localhost:7007/user/updateUser.do?id=1&userName=heng&password=1234567

然后继续访问查询会走缓存

具体看代码

项目地址:https://github.com/heng1234/springboot2.x/tree/master/boot_cache

下一章:springboot使用拦截器-过滤器-servlet-listener

Last updated

Was this helpful?