springboot 中使用ehcache的效果和注意事项

Spring Framework支持向应用程序添加缓存。核心用法是将缓存应用于方法,从而减少了基于缓存中可用信息的调用方法执行次数。架构启用缓存对应用零改动,对调用程序也没有任何干扰。只要在主应用添加@EnableCaching注释,Spring Boot就会自动给应用添加缓存基础架构支持。具体流程和测试用例如下:

1、springboot主应用添加@EnableCaching注释;

2、在被缓存的方法增加@Cacheable("passwordRetryCache")注解;

3、连续两次调用测试,通过控制台,可以看到第一次调用进入方法执行代码,第二次缓存启用,没有进入代码执行。

第一次调用,执行方法体,并且缓存监听器可以看到缓存的信息

date=2020-1-23
---执行代码----
2024-06-07 17:45:45.854  INFO 49388 --- [nio-8080-exec-1] c.x.b.cache.XdCacheEventListener         : cache put. ehcacheName=passwordRetryCache, key = 2020-1-23, value = 20200123
yyyyMMdd=20200123

第二次调用,没有进入方法体,只是返回值。
date=2020-1-23
yyyyMMdd=20200123

4、如果不指定缓存类型和缓存库的话,Spring Boot会自动创建默认的缓存提供程序并根据缓存名字自动创建缓存(我们也可以直接通过spring.cache.cache-names=passwordRetryCache 定义我们缓存),这种情况一般是我们测试使用,生成环境建议显示配置缓存类型。这里我们以Ehcahce为例,如果在类路径的根目录中定义了默认ehcache.xml文件,则应用会自动找到文件并使用Ehcache缓存,如果使用文件名非默认文件名,则需要显示指定文件路径 spring.cache.ehcache.config=classpath:config/another-config.xml。

5、如果有些时候,我们想禁用我们启用的缓存,可通过如下参数配置:

spring.cache.type=none

6、注意事项:

1)缓存的方法基本是按照参数和方法唯一标识,即指定的参数必须返回指定的唯一值,如果我们用同一参数调用方法,返回值不一样,则不能使用缓存,否则影响你的业务逻辑判断;

如以下例子,按道理返回的值是按照随机值返回的,但是第一次缓存后,后续调用返回的都是第一次返回的值:

2)缓存的方法的最好是同一参数调用次数频繁,多次调用,如果每次调用参数都不一样,那缓存的意义也不大。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值