Spring-cache + redis 自定义注解

本文介绍了在Spring Boot应用中,针对API接口返回全表数据的场景,如何结合Spring Cache和Redis实现自定义缓存注解。内容包括自定义@CachePut和@CacheAdd注解,SPEL表达式解析key以及AOP逻辑,旨在优化数据查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
API 端需要调用我这儿的一个接口,接口的数据是Mysql 全表的数据(涉及很多张表的数据拼接), 于是引入了Spring -cache 和 redis 缓存,Service 层的代码如下:

@Override
    @Cacheable(value = "cache:apiPolicy")
    public List<PolicyMain> apiList(Map<String, Object> map) {
        List<PolicyBaseCommonBO> policyBaseCommonBOList = policyBaseCommonService.list(map);
        return setDate(policyBaseCommonBOList);
    }

这个map 里面是查询的条件,也就导致了无法按记录的id去缓存, 每当mysql 的数据发生更改时,于是这里需要自己定义@CachePut 和 @CacheAdd。

思路: 通过AOP 获取注解,拿到Cache ,然后转pojo,处理对应的cache 。

1.自定义注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyCacheAdd {
   
    @AliasFor(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值