专栏首页数据分析与挖掘springboot缓存之@Cacheable中常用参数

springboot缓存之@Cacheable中常用参数

接上一节。

    @Cacheable(value = "emp",keyGenerator = "myKeyGenerator",condition="#id>1",unless="#a0==2")
    @ResponseBody
    @RequestMapping("/emp/{id}")
    public Employee getEmp(@PathVariable("id") Integer id){
        Employee emp = employeeService.getEmp(id);
        return emp;
    }

我们可以通过key参数来指定缓存的key,同时也可以按照自己制定的缓存key,使用keyGenerator即可。

新建一个config包,在该包中新建MyCacheConfig.java

package com.gong.springbootcache.config;

import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.lang.reflect.Method;
import java.util.Arrays;

@Configuration
public class MyCacheConfig {

    @Bean("myKeyGenerator")
    public KeyGenerator keyGenerator(){
        return new KeyGenerator(){
            @Override
            public Object generate(Object o, Method method, Object... objects) {
                return method.getClass().getName()+"["+ Arrays.asList(objects).toString()+"]";
            }
        };
    }
}

这样我们指定的缓存的key就是:getEmp[id]。

参数:condition="#id>1",意思是id值大于1的才进行缓存

参数:unless="#a0==2",意思是第一个参数的值,也就是id,等于2的时候不进行缓存。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot缓存之@CachePut注解

    这是因为getEmp中参数为id,updateEmp参数中为employee。我们知道,如果使用缓存时不指定缓存的key,也就是设置key或者keyGenera...

    绝命生
  • springboot缓存之@Caching和@CacheConfig注解

    在执行Localhost:8080/emp/lastName/jack请求之后,会同时将@CachePut缓存规则加入到缓存中。

    绝命生
  • springtboot缓存之@CacheEvict

    @CacheEvict还有个allEntries属性,默认为false,我们可以将其设置为,清除指定缓存中的所有缓存,这里是emp。

    绝命生
  • SpringBoot 实战 (十一) | 整合数据缓存 Cache

    如题,今天介绍 SpringBoot 的数据缓存。做过开发的都知道程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的,当需要重复获取相同数据时,一次又一...

    一个优秀的废人
  • ViewPager+Fragment实现支持左右滑动的Tab

    用户1737026
  • springboot缓存之@Caching和@CacheConfig注解

    在执行Localhost:8080/emp/lastName/jack请求之后,会同时将@CachePut缓存规则加入到缓存中。

    绝命生
  • springtboot缓存之@CacheEvict

    @CacheEvict还有个allEntries属性,默认为false,我们可以将其设置为,清除指定缓存中的所有缓存,这里是emp。

    绝命生
  • 实例演示Android异步加载图片

    本文给大家演示异步加载图片的分析过程。让大家了解异步加载图片的好处,以及如何更新UI。 首先给出main.xml布局文件: 简单来说就是 LinearLayou...

    欢醉
  • 实例演示Android异步加载图片

    本文给大家演示异步加载图片的分析过程。让大家了解异步加载图片的好处,以及如何更新UI。 首先给出main.xml布局文件: 简单来说就是 LinearLayou...

    欢醉
  • Android-MediaPlayer

    突然觉得这个音乐播放有点意思,我们来做一下吧。 首先我们来一个名为MediaPlayerDemo的项目。 然后再main.xml文件里面创建三个按钮,分别是...

    晨曦_LLW

扫码关注云+社区

领取腾讯云代金券