Spring Cache抽象-使用SpEL表达式
- 概述
- 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表达式相关推荐
- Spring Cache抽象-缓存注解
文章目录 概述 Spring缓存的基本原理 @Cacheable :主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 键生成器 带条件的缓存 @Cacheable 注解参数说明 示例-缓存管理 ...
- Spring Cache抽象-基于XML的配置声明(基于EhCache的配置)
概述 完整示例 pomxml增加依赖 数据库表数据Oracle 实体类 服务层 ehcache的配置文件 Spring-EhCache配置文件 单元测试 日志输出 日志分析 示例源码 概述 首先请阅读 ...
- Spring Cache抽象-使用Java类注解的方式整合EhCache
概述 工程结构 源码 概述 Spring Cache抽象-之缓存注解这篇博文中我们介绍了SpringCache抽象注解的使用方式 既然这是一个抽象,我们需要一个具体的缓存存储实现.比价流行的有:基于J ...
- Spring Aop中解析spel表达式,实现更灵活的功能
前言 在Spring Aop中,我们可以拿到拦截方法的参数,如果能结合spel表达式,就能实现更加灵活的功能.典型的实现有Spring的缓存注解: @Cacheable(value = "u ...
- 说说如何在 Spring 框架中使用 SpEL 表达式
在 Spring 框架的 XML 配置方式或者注解配置方式中,我们都可以使用 SpEL 表达式,它们的语法都是 #{表达式}. 1 基于 XML 配置 在 XML 配置中,我们可以通过 SpEL 表达 ...
- Spring Cache抽象-基于XML的配置声明(基于ConcurrentMap的配置)
概述 示例 项目结构 数据库表数据Oracle 实体类 服务层 Spring配置文件 单元测试 日志输出 日志分析 示例源码 概述 Spring Cache基于注解的配置 如果不想使用注解或者由于其他 ...
- Spring Cache抽象-缓存管理器
概述 SimpleCacheManager NoOpCacheManager ConcurrentMapCacheManager CompositeCacheManager 概述 CacheManag ...
- Spring中常用的SpEl表达式
Java 社区交流群 添加微信: 372787553 备注进群 SpEl 表达式语法 文字表达 支持的文字表达式类型是字符串.数值(整数.实数.十六进制).布尔值和空值.字符串由单引号分隔.要将单引号 ...
- Spring系列之强大的Spel表达式
本文带你玩转spring中强大的spel表达式! Spel概述 Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL&q ...
最新文章
- win7关于IIS发布网站时候数据库的问题,xp也一样
- vijos1055 奶牛浴场
- Kafka的原理介绍及实践
- dll动态库调用约定
- Find and Delete Files with Extension Name
- 安装JDK 9与使用jshell
- java beancomparator_xkbeancomparator
- mysql涉及表 规范_MySql数据库表设计规范
- cvSobel() 梯度和Sobel导数
- 计算机二级考试vb内容,计算机二级VB考试考什么内容?(一)
- 流程图制作规范与原则
- 【dxf图形识别】使用C#将线段、圆弧、圆等特征写入dxf文件
- cesium 加载fbx模型
- 2003版excel 删除某列数据相同的行只保留一行的方法
- java 去除数组中重复的元素
- supserset权限管理
- Ubuntu14.04安装calamari
- 函数极限:函数极限的多种形式
- 网站页面SEO优化方案
- 【菜鸟窝】人工智能就业与面试指南
热门文章
- linux 下 c++ clock 函数理解
- pyspark rdd 数据持久化
- byte数组转字符串_VS2012 C# 16进制数与字符串的互换
- Python入门100题 | 第073题
- 浅谈文献总结(2018.9.28)——坚恒勇毅论文课笔记
- Java的clone()用法实例解析
- Java - Get a list of all Classes loaded in the JVM[转]
- Jayway JsonPath实例
- Spring Security 4 Method security using @PreAuthorize,@PostAuthorize, @Secured, EL--转
- Spring源码解析之:Spring Security启动细节和工作模式--转载