Spring Cache自定义KeyGenerator

Spring Cache自定义KeyGenerator

如何自定义Key?如何使用?该注意哪些点?


前言

随着业务的升级、用户规模的增长,对系统的吞吐量提出了更高要求,单纯依赖数据库的优化已经远远不够,此时缓存呼之欲出。
Spring Cache是Spring家的缓存管理器,基于AOP实现,添加了Spring Cache系列注解的方法将被代理。多的就不说了,本文主要讲解自定义key生成器。


一、KeyGenerator是什么

KeyGenerator是Spring Cache管理器的一小部分功能,能实现自定义key的生成规则。

二、使用步骤

1.实现KeyGenerator接口并注册到IoC容器中

代码如下:

@Component
public class RecordKeyGenerator implements KeyGenerator {
   
    // ...
}

不实现接口将通过编译,但调用方法时代理失败,抛出BeanNotOfRequiredTypeException异常,参考org.springframework.cache.interceptor.CacheAspectSupport。
为什么要加入容器?因为你要从IoC容器中获取[/dog],加入容器的方式有多种,这里使用注解。

2.完善代码逻辑

完善你要生成的Key规则,这里能获取方法的所有信息,包括方法签名、参数等等,这里要按照业务需求来生成哦,避免出现逻辑bug。
StrUtil为hutool包下工具类,按需求替换。
代码如下:

/**
 * <p>
 * <pre>Generate a key for specified scene.</pre>
 * {@link org.springframework.cache.interceptor.SimpleKeyGenerator}
 * </p>
 *
 * @author by aiker
 * @date 2021/7/13
 */
@Slf4j
@Component
public class recordKeyGenerator implements KeyGenerator {
   

    @SuppressWarnings("NullableProblems")
    @Override
    public Object generate(Object target, Method method, Object..
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值