• 概述
  • SpEl表达式

概述

在Spring Cache注解属性中(比如key,condition和unless),Spring的缓存抽象使用了SpEl表达式,从而提供了属性值的动态生成及足够的灵活性。

下面的代码根据用户的userCode进行缓存,对于key属性,使用了表达式自定义键的生成。

public class UserService {private Map<Integer, User> users = new HashMap<Integer, User>();{users.put(1, new User("1", "w1",37));users.put(2, new User("2", "w2", 34));}@Cacheable(value = "users", key = "#user.userCode" condition = "#user.age < 35")public User getUser(User user) {System.out.println("User with id " + user.getUserId() + " requested.");return users.get(Integer.valueOf(user.getUserId()));}

SpEl表达式

SpEL表达式可基于上下文并通过使用缓存抽象,提供与root独享相关联的缓存特定的内置参数。

名称 位置 描述 示例
methodName root对象 当前被调用的方法名 #root.methodname
method root对象 当前被调用的方法 #root.method.name
target root对象 当前被调用的目标对象实例 #root.target
targetClass root对象 当前被调用的目标对象的类 #root.targetClass
args root对象 当前被调用的方法的参数列表 #root.args[0]
caches root对象 当前方法调用使用的缓存列表 #root.caches[0].name
Argument Name 执行上下文 当前被调用的方法的参数,如findArtisan(Artisan artisan),可以通过#artsian.id获得参数 #artsian.id
result 执行上下文 方法执行后的返回值(仅当方法执行后的判断有效,如 unless cacheEvict的beforeInvocation=false) #result

Spring Cache抽象-使用SpEL表达式相关推荐

  1. Spring Cache抽象-缓存注解

    文章目录 概述 Spring缓存的基本原理 @Cacheable :主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 键生成器 带条件的缓存 @Cacheable 注解参数说明 示例-缓存管理 ...

  2. Spring Cache抽象-基于XML的配置声明(基于EhCache的配置)

    概述 完整示例 pomxml增加依赖 数据库表数据Oracle 实体类 服务层 ehcache的配置文件 Spring-EhCache配置文件 单元测试 日志输出 日志分析 示例源码 概述 首先请阅读 ...

  3. Spring Cache抽象-使用Java类注解的方式整合EhCache

    概述 工程结构 源码 概述 Spring Cache抽象-之缓存注解这篇博文中我们介绍了SpringCache抽象注解的使用方式 既然这是一个抽象,我们需要一个具体的缓存存储实现.比价流行的有:基于J ...

  4. Spring Aop中解析spel表达式,实现更灵活的功能

    前言 在Spring Aop中,我们可以拿到拦截方法的参数,如果能结合spel表达式,就能实现更加灵活的功能.典型的实现有Spring的缓存注解: @Cacheable(value = "u ...

  5. 说说如何在 Spring 框架中使用 SpEL 表达式

    在 Spring 框架的 XML 配置方式或者注解配置方式中,我们都可以使用 SpEL 表达式,它们的语法都是 #{表达式}. 1 基于 XML 配置 在 XML 配置中,我们可以通过 SpEL 表达 ...

  6. Spring Cache抽象-基于XML的配置声明(基于ConcurrentMap的配置)

    概述 示例 项目结构 数据库表数据Oracle 实体类 服务层 Spring配置文件 单元测试 日志输出 日志分析 示例源码 概述 Spring Cache基于注解的配置 如果不想使用注解或者由于其他 ...

  7. Spring Cache抽象-缓存管理器

    概述 SimpleCacheManager NoOpCacheManager ConcurrentMapCacheManager CompositeCacheManager 概述 CacheManag ...

  8. Spring中常用的SpEl表达式

    Java 社区交流群 添加微信: 372787553 备注进群 SpEl 表达式语法 文字表达 支持的文字表达式类型是字符串.数值(整数.实数.十六进制).布尔值和空值.字符串由单引号分隔.要将单引号 ...

  9. Spring系列之强大的Spel表达式

    本文带你玩转spring中强大的spel表达式! Spel概述 Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL&q ...

最新文章

  1. win7关于IIS发布网站时候数据库的问题,xp也一样
  2. vijos1055 奶牛浴场
  3. Kafka的原理介绍及实践
  4. dll动态库调用约定
  5. Find and Delete Files with Extension Name
  6. 安装JDK 9与使用jshell
  7. java beancomparator_xkbeancomparator
  8. mysql涉及表 规范_MySql数据库表设计规范
  9. cvSobel() 梯度和Sobel导数
  10. 计算机二级考试vb内容,计算机二级VB考试考什么内容?(一)
  11. 流程图制作规范与原则
  12. 【dxf图形识别】使用C#将线段、圆弧、圆等特征写入dxf文件
  13. cesium 加载fbx模型
  14. 2003版excel 删除某列数据相同的行只保留一行的方法
  15. java 去除数组中重复的元素
  16. supserset权限管理
  17. Ubuntu14.04安装calamari
  18. 函数极限:函数极限的多种形式
  19. 网站页面SEO优化方案
  20. 【菜鸟窝】人工智能就业与面试指南

热门文章

  1. linux 下 c++ clock 函数理解
  2. pyspark rdd 数据持久化
  3. byte数组转字符串_VS2012 C# 16进制数与字符串的互换
  4. Python入门100题 | 第073题
  5. 浅谈文献总结(2018.9.28)——坚恒勇毅论文课笔记
  6. Java的clone()用法实例解析
  7. Java - Get a list of all Classes loaded in the JVM[转]
  8. Jayway JsonPath实例
  9. Spring Security 4 Method security using @PreAuthorize,@PostAuthorize, @Secured, EL--转
  10. Spring源码解析之:Spring Security启动细节和工作模式--转载