没有合适的资源?快使用搜索试试~ 我知道了~
首页Spring Boot中使用EhCache实现缓存支持
Spring Boot中使用EhCache实现缓存支持
需积分: 50 388 浏览量
更新于2023-05-26
评论
收藏 110KB DOCX 举报
Spring Boot中使用EhCache实现缓存支持,介绍整合方法和配置
资源详情
资源评论
资源推荐

Spring Boot 中的缓存支持 EhCache 的使用
摘自:
简介
! 提供数据缓存功能的支持,提供了一系列的自动化配置,使我们可以非常方
便的使用缓存。,相信非常多人已经用过 了。因为数据库的 "# 瓶颈。一般情况下
我们都会引入非常多的缓存策略,例如引入 ,引入 的二级缓存等等。
! 在 的层面给我们实现了 ,得益于 的 $#%。所有
的缓存配置只是在 层面配置,完全没有侵入到我们的代码当中,就像我们的
声明式事务一样。
定 义 了 &' 和 & 接 口 统 一 不 同 的 缓 存 技 术 。 其 中
&' 是 提供的各种缓存技术的抽象接口。而 & 接口包含缓存的
各种操作,当然我们一般情况下不会直接操作 & 接口。
针对不同的缓存技术,需要实现不同的 ', 定义
了如下的 ' 实现
CacheManger
描述
&'
使用简单的 & 来存储缓存,主要用于测试
&('&'
使用 &(' 作为缓存技术(默认)
)#&'
测试用
*&&'
使用 *& 作为缓存技术,以前在
的时候经常用
+(,&'
使用 (, 的 +(,& 作为缓存技
术
-.&'
使用 -. 作为缓存技术

/&&'
使用 /& 标准的实现作为缓存技术,如
$&/&
0&'
使用 0 作为缓存技术
当然常规的 ! 已经为我们自动配置了
*&、&、+(,、&(' 等缓存,默认使用
&&1(,即使用
&('&'。 ! 的
配置文件,使用 前缀的属性进行配置。
23缓存的技术类型
42应用程序启动创建缓存的名称
12 的配置文件位置
1121 的配置文件位置
5125 配置文件位置
5,2当多个 5 实现类时,指定选择 5 的实现类
Cache 注解详解
@CacheConfig : 主 要 用 于 配 置 该 类 中 会 用 到 的 一 些 共 用 的 缓 存 配 置 。 在 这 里
@CacheConfig(cacheNames = "users"):配置了该数据访问对象中返回的内
容 将 存 储 于 名 为 users 的 缓 存 对 象 中 , 我 们 也 可 以 不 使 用 该 注 解 , 直 接 通 过
@Cacheable 自己配置缓存集的名字来定义。
6&7在方法执行前 先是否有缓存数据,如果有直接返回。如果没有数据,
调用方法并将方法返回值存放在缓存当中。
@Cacheable:配置了 findByName 函数的返回值将被加入缓存。同时在查询
时,会先从缓存中获取,若不存在才再发起对数据库的访问。该注解主要有下
面几个参数:

value、cacheNames:两个等同的参数(cacheNames 为 新
增,作为 value 的别名),用于指定缓存存储的集合名。由于
中新增了@CacheConfig,因此在 中原本必须有的 value 属
性,也成为非必需项了
key:缓存对象存储在 ' 集合中的 8 值,非必需,缺省按照函数的
所有参数组合作为 8 值,若自己配置需使用 *9 表达式,比如:
@Cacheable(key = "#p0"):使用函数第一个参数作为缓存的 8 值,
更多关于 *9 表达式的详细内容可参考官方文档
condition:缓存对象的条件,非必需,也需使用 *9 表达式,只有
满足表达式条件的内容才会被缓存,比如:@Cacheable(key =
"#p0", condition = "#p0.length() < 3"),表示只有当第一个
参数的长度小于 的时候才会被缓存,若做此配置上面的 $$$ 用户就不
会被缓存,读者可自行实验尝试。
unless:另外一个缓存条件参数,非必需,需使用 *9 表达式。它不
同于 condition 参数的地方在于它的判断时机,该条件是在函数被调用
之后才做判断的,所以它可以通过对 ( 进行判断。
keyGenerator:用于指定 8 生成器,非必需。若需要指定一个自定
义的 8 生成器,我们需要去实现
org.springframework.cache.interceptor.KeyGenerator 接
口,并使用该参数来指定。需要注意的是:该参数与 key 是互斥的
cacheManager:用于指定使用哪个缓存管理器,非必需。只有当有多
个时才需要使用

cacheResolver:用于指定使用那个缓存解析器,非必需。需通过
org.springframework.cache.interceptor.CacheResolver 接
口来实现自己的缓存解析器,并用该参数指定。
@CachePut:配置于函数上,能够根据参数定义条件来进行缓存,
它与@Cacheable 不同的是,它每次都会将方法返回值放入缓存,所
以主要用于数据新增和修改操作上。它的参数与@Cacheable 类似,
具体功能可参考上面对@Cacheable 参数的解析。
@CacheEvict:配置于函数上,通常用在删除方法上,用来从缓存中移除相
应数据。除了同@Cacheable 一样的参数之外,它还有下面两个参数:
allEntries:非必需,默认为 :。当为 ( 时,会移除所有数据
beforeInvocation:非必需,默认为 :,会在调用方法之后移除
数据。当为 ( 时,会在调用方法之前移除数据。
配置缓存
引入缓存依赖
在 pom.xml 中引入 依赖,添加如下内容:
;<
;("<:=8;("<
;:"<444;:"<
;<
剩余15页未读,继续阅读



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0