@Cacheable 其他属性|学习笔记

简介: 快速学习 @Cacheable 其他属性

开发者学堂课程【SpringBoot快速掌握 - 高级应用:@Cacheable其他属性】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/613/detail/9291


@Cacheable其他属性

其他几个属性:

cacheNames /value:指定缓存组件的名字;将方法的返回值放在哪个缓存中,是数组的方式,可以指定多个缓存;

key:缓存数据使用的 key;可以用它来指定。默认是使用方法参数的值1-方法的返回值。

编写 SpEL;#id;参数 id 的值 #aθ#pθ@#root.args[θ]key  

Generator:key 的生成器;

package com. atguigu. cache. config;

importorg.springframework . cache.  interceptor . KeyGenerator ;

import org.  springframework . context.  annotation . Bean;

importorg.springframework . context.  annotation .  Configuration ;

import java. lang. reflect. Method;

import java. util. Arrays;

@ Configuration

public class  MyCacheConfig {

@Bean(" myKeycenerator ")

public  KeyGeneratorkeyGenerator (){

return new  KeyGenerator (){

@Override

public Object generate(Object target, Method method, Object... params){return  

method.getName()+"["+Arrays. aslist(params).toString()+"]";

}

}

}

}

可以自己指定 key 的生成器的组件 id

key/ keyGenerator :二选一使用

cacheManager :指定缓存管理器;或者 cacheResolver 指定获取解析器

condition:指定符合条件的情况下才缓存;

, condition="#id>θ"

condition=“#aθ>1”:第一个参数的值>1的时候才进行缓存

如果查1号员工,发现并没有缓存;查询2号员工,第一次有打印,第二次没有打印说明没有方法进入

condition="#id>0"unless:否定缓存;当 unless 指定的条件为 truve,方法的返回值就不会被缓存;可以获取到结果进行判断 unless="#result==null"

unless=“#aθ==2”:如果第一个参数的值是2,结果不缓存

查询1号员工会打印,且语句发送;查询2号员工没有打印也没有语句发送说明没有缓存。

sync:是否使用异步模式

@paramid

ge return

@Cacheable(value={"emp"}, key="#root. methodName +"['+#id+"]'")) 这样就可以自定义 key

public Employee getEmp(Integer id){

System. out. print\n("査询"+id+"号员工");

Employee emp= employeeMapper . getEmpById (id);

return emp;

}

相关文章
|
存储 SQL 数据库连接
MPPDB分布式结构化数据库
1.MPPDB简介 MPP,它是一款 Shared Nothing 架构的分布式并行数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统。
7161 0
|
4月前
|
存储 安全 关系型数据库
MyEMS 开源能源管理系统:打造智能高效的能源管控新模式
MyEMS 是一款开源能源管理系统,助力企业实现能源数据全流程管理,降低能耗与碳排放。模块化设计适配多行业需求,支持实时监测、智能分析与能效评估,广泛应用于工业、建筑、数据中心等领域,具备低成本、高安全性及强扩展性,推动能源管理智能化升级。
172 2
|
3月前
|
人工智能 自然语言处理 数据可视化
别再用Excel死磕了!阿里云QBI+DataV才是政企报表的正确打开方式
阿里云Quick BI与DataV联合打造数据智能解决方案,覆盖数据分析、可视化及数字孪生全链路。QBI以智能分析驱动决策,DataV提供低代码可视化与三维孪生能力,助力政企高效实现数据驱动创新。
270 0
|
NoSQL C++ 容器
每天学点GDB(五)
本节分享使用GDB来进行STL容器的调试。
1990 0
|
安全 Linux PHP
PHP安全之临时文件的安全
(一)临时文件简介临时文件,顾名思义是临时的文件,文件的生命周期短。然而,很多应用的运行都离不开临时文件,临时文件在我们电脑上无处不在,通常有以下几种形式的临时文件: 文件或图形编辑程序,所生成的中间文件数据库查询时,生成的临时缓存文件,提供之前的结果数据而,以减少再次访问数据库的代价;通常用于远...
1339 0
|
机器学习/深度学习 数据采集 运维
【VLDB】融合transformer和对抗学习的多变量异常检测算法TranAD论文和代码解读
# 一、前言 今天的文章来自VLDB TranAD: Deep Transformer Networks for Anomaly Detection in Multivariate Time Series Data ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/10c1f546-c86d-4bec-b64c-7366
1291 1
【VLDB】融合transformer和对抗学习的多变量异常检测算法TranAD论文和代码解读
|
JavaScript 安全 Java
深入Netty逻辑架构,从Reactor线程模型开始(一)
深入Netty逻辑架构,从Reactor线程模型开始(一)
707 0
深入Netty逻辑架构,从Reactor线程模型开始(一)
|
关系型数据库 PostgreSQL Docker
docker:changing ownership of ‘.‘: Permission denied怎么办
docker:changing ownership of ‘.‘: Permission denied怎么办
686 0
docker:changing ownership of ‘.‘: Permission denied怎么办
|
SQL 分布式计算 数据可视化
Hologres助力飞猪双11实时数据大屏秒级响应
本文重点介绍Hologres如何落地阿里巴巴飞猪实时数仓场景,并助力飞猪双11实时数据大屏3秒起跳,全程0故障。
29258 0
Hologres助力飞猪双11实时数据大屏秒级响应
|
存储 缓存 运维
实际场景中,云原生存储面临的 7 个挑战
新的企业负载/智能工作负载容器化、迁云、存储方面遇到的性能、弹性、高可用、加密、隔离、可观测性及生命周期等方面的问题,不但需要存储产品层次的改进,还需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进。下文将分别介绍一下问题场景及问题,探讨可行的解决方案,最终可以得出云原生存储、云存储目前可以做什么和未来还需要做什么。
实际场景中,云原生存储面临的 7 个挑战