zoukankan      html  css  js  c++  java
  • 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的时候不进行缓存。

  • 相关阅读:
    redis方法中文解释
    简单redis队列实现
    PHP中常用的字符串操作【转】
    SQL循环语句
    crontable 实例
    自动以当前时间命名文件
    tar命令详解
    PHP 数据类型验证和获取
    Nginx 配置文件nginx.conf的完整配置说明
    sql server DateFormat(转)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12290780.html
Copyright © 2011-2022 走看看