@Cacheable 拼接key的操作

我就废话不多说了,大家还是直接看代码吧~

@Cacheable(value = "page_user",key ="T(String).valueOf(#page).concat('-').concat(#pageSize)",unless = "#result=null")//由于page是int型,concat要求变量必须为String,所以强转一下
@Override
public List<SysUserEntity> page(int page, int pageSize) {
  return userMapper.page(page,pageSize);
}

补充:记一个spring缓存Cacheable注解key设置问题

spring的Cacheable注解用来设置缓存,其中的key属性为spel表达式,如果要设置常量,则需要用''包裹,如:

@Cacheable(value = CacheConstant.APPLICATION,key = "'id_map'")

此处的"'id_map'"代表key设置了一个常量,如果没有'',则会报错

org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'lang_code_map' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject' - maybe not public or not valid?

意思为在缓存表达式根对象上找不到指定属性,说明如果不加'',则id_map作为属性解析

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

    注释介绍 @Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 作用和配置方法 参数 解释 example value 缓存的名称,在 spring 配置文件中定义,必须指定至少一个 例如: @Cacheable(value="mycache") @Cacheable(value={"cache1","cache2"} key 缓存的 key,可以为空,如果指定要按照

  • Java Map如何根据key取value以及不指定key取出所有的value

    根据key取其value Map<String, String> map = new HashMap<String, String>(); map.put("b", "4"); map.put("a", "5"); map.put("c", "3"); map.put("d", "5"); // 根据key获取 其value

  • Java 遍历取出Map集合key-value数据的4种方法

    将map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看 随便创建一个包,在包中新建一个class文件,(也可以不建包,直接新建一个class文件) 新建class文件MapTest.java,代码如下: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class

  • spring整合redis缓存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用

    maven项目中在pom.xml中依赖2个jar包,其他的spring的jar包省略: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>org.springfra

  • @Cacheable 拼接key的操作

    我就废话不多说了,大家还是直接看代码吧~ @Cacheable(value = "page_user",key ="T(String).valueOf(#page).concat('-').concat(#pageSize)",unless = "#result=null")//由于page是int型,concat要求变量必须为String,所以强转一下 @Override public List<SysUserEntity> pag

  • 在Vue中使用Select选择器拼接label的操作

    我就废话不多说了,大家还是直接看代码吧~ <el-form-item label="货道商品" prop="productid"> <el-select v-model="form.productid" filterable placeholder="请选择" @change="changeselect"> <el-option v-for="item in mypr

  • 如何给Cacheable的key加上常量

    目录 Cacheable的key加上常量 背景    springcache key的定义方式 1.不指定key,使用默认key生成器 2.指定key值 3.自定义key生成器 Cacheable的key加上常量 背景    由于缓存的注解有类似的前缀,所以抽取出常量. public static final String KEY_CERT_TYPE_CODE_PREFIX = "ec_cert_type:cert_type_code:"; @Override @Cacheable(k

  • 详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)

    Numpy中提供了concatenate,append, stack类(包括hsatck.vstack.dstack.row_stack.column_stack),r_和c_等类和函数用于数组拼接的操作. 各种函数的特点和区别如下标: concatenate 提供了axis参数,用于指定拼接方向 append 默认先ravel再拼接成一维数组,也可指定axis stack 提供了axis参数,用于生成新的维度 hstack 水平拼接,沿着行的方向,对列进行拼接 vstack 垂直拼接,沿着列的

  • Pytorch数据拼接与拆分操作实现图解

    1.cat:拼接 直接合并数据 2.stack拼接: 与cat不同的是,stack创建了一个新的维度,在拼接的同时,给数据增加了类别.并且stack的所有数据维度必须一致. 3.split拆分: 通过数据长度进行拆分 4.chunk拆分: 与split不同的是:chunk是指定拆分的个数,将数据拆分为指定个数. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Spring @Cacheable注解中key的使用详解

    目录 Spring @Cacheable注解中key使用 下面是几个使用参数作为key的示例 condition属性指定发生的条件 @CachePut @CacheEvict allEntries属性 beforeInvocation属性 @Caching 使用自定义注解 @Cacheable 拼接key Spring @Cacheable注解中key使用 key属性是用来指定Spring缓存方法的返回结果时对应的key的.该属性支持SpringEL表达式.当我们没有指定该属性时,Spring将

  • 手写redis@Cacheable注解 参数java对象作为key值详解

    目录 1.实现方式说明 1.1问题说明 1.2实现步骤 2.源代码 3.测试 1.实现方式说明 本文在---- 手写redis @ Cacheable注解支持过期时间设置   的基础之上进行扩展. 1.1问题说明 @ Cacheable(key = “'leader'+#p0 +#p1 +#p2” )一般用法,#p0表示方法的第一个参数,#p1表示第二个参数,以此类推. 目前方法的第一个参数为Java的对象,但是原注解只支持Java的的基本数据类型. 1.2实现步骤 1.在原注解中加入新的参数,

  • php操作redis常见方法示例【key与value操作】

    本文实例讲述了php操作redis常见方法.分享给大家供大家参考,具体如下: 关于key的操作: 1.获取所有key,不包括值: $redis ->keys("*"); 2.获取一个或多个key的值,[不限制数据类型]: $redis ->mget([$key1,$key2]);//参数为数组: 3.设置指定key的生命周期: $redis ->expire($key,30);//设置生命周期为30秒: 4.获取指定key的剩余生命周期: $redis->tTl

  • SpringBoot如何使用@Cacheable进行缓存与取值

    目录 使用@Cacheable进行缓存与取值 1. @Cacheable的作用 2.常用属性说明 SpringBoot中Cacheable使用说明 功能说明 1. cacheNames & value 2. 关联多个缓存名 3. key & keyGenerator 4. cacheManager & cacheResolver 5. sync 6. condition 7. unless 8. condition VS unless ? 使用@Cacheable进行缓存与取值 1

  • Java中使用Jedis操作Redis的示例代码

    使用Java操作Redis需要jedis-2.1.0.jar,下载地址:jedis-2.1.0.jar 如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:commons-pool-1.5.4.jar package com.test; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.j

随机推荐