Spring 缓存抽象简介|学习笔记

简介: 快速学习 Spring 缓存抽象简介

开发者学堂课程【SpringBoot 快速掌握 - 高级应用:Spring 缓存抽象简介】学习笔记,与课程紧密联系,让用户快速学习知识

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


Spring 缓存抽象简介

Spring 从3.1开始定义了 org. spring framework. cache.

Cache 和 org.  springframework . cache. CacheManager  

接口来统一不同的缓存技术;并支持使用 JCache(JSR-107) 注解简化我们开发;

Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合;

Cache 接口下 Spring 提供了各种 xxxCache 的实现:

如 RedisCache , EhCacheCache ,  ConcurrentMpCache 等;

每次调用需要缓存功能的方法时,Sprinq 会检查检查指定参数的指定的目标方法是否已经被调用过;如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。

使用 Spring 缓存抽象时需要关注以下两点;

⒈确定方法需要被缓存以及他们的缓存策略

⒉从缓存中读取之前缓存存储的数据

几个重要概念&缓存注解

Cache

缓存接口,定义缓存操作。实现有 RedisCache、EhCacheCache、ConcurrentMapCache 等

CacheManager

缓存管理器,管理各种缓存(cache)组建

@Cacheable

主要针对方法配置,能够根据方法的请求参数对其结果进行缓存

@CacheEvict

清空缓存

@CachePut

保证方法被调用,又希望结果被缓存。

@EnableCaching

开启基于注解的缓存

keyGenerator

缓存数据时 key 生成策略

serialize

缓存数据时 value 序列化策略

第一次查1号用户,由于标了 @Cacheable 就会被放在缓存中,如果下一次还是查询1号用户,就不需要调用了,直接在缓存中找即可。

要删除一个用户,就可以在上边标明 @CacheEvict 即可清空缓存。

@CachePut 就经常用来缓存更新。

但是要想用缓存注解,就得开启 @EnableCaching。

相关文章
|
4天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
24 9
|
11天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
47 2
|
24天前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
33 9
|
25天前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
19 1
|
29天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
52 2
|
29天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
49 1
|
29天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
20 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
29天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
22 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
29天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
49 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
29天前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
22 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql