企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
对缓存注解中的属性赋值时,使用的是 SpEL 表达式的字符串语法,如: ```java @Cacheable(value="testcache",unless="#result == null") ``` :-: **Cache SpEL表达式** |名字 |位置 |描述 |示例 | | --- | --- | --- | --- | |methodName |root object |获取当前被调用的方法名 |`#root.methodName`| |method |root object| 获取当前被调用的方法 |`#root.method.name`| |target |root object| 获取当前被调用的目标对象| `#root.target`| |targetClass| root object |获取当前被调用的目标对象类| `#root.targetClass`| |args |root object| 获取当前被调用的方法的参数列表| `#root.args[0]`表示获取第一个参数的值| |caches |root object| 获取当前方法调用的缓存列表。如 @Cacheable(value={"cache1", "cache2"})),则有两个 cache|`#root.caches[0].name` 获取第一个cache组件名| |argument`|`name|evaluation context |(1)根据方法参数名获取参数值:`#参数名`;<br/> (2)或者根据参数的位置获取参数值:`#p0`或`#a0`的形式,0代表参数的索引;|`#iban` 、 `#a0` 、 `#p0`| |result |evaluation context| 获取方法执行后的返回值。则@CacheEvict的属性beforeInvocation=false|`#result`|