Spring Cache框架(缓存)

这篇具有很好参考价值的文章主要介绍了Spring Cache框架(缓存)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、介绍:
Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单加个注解,就能实现缓存功能。它提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager 接口来实现不同的缓存技术。
针对不同的混存技术需要实现不同的CacheManager:

CacheManager 描述
EhCacheCacheManager 使用EhCache作为缓存技术
GuavaCacheManager 使用Google的GuavaCache作为缓存技术
RedisCacheManager 使用Redis作为缓存技术

2、Spring Cache常用注解

注解 说明
@EnableCaching 开启缓存注解功能
@Cacheable 在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
@CachePut 将方法的返回值放到缓存中
@CacheEvict 将一条或者多条数据从缓存中删除

在spring boot项目中,使用缓存技术只需要导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可。例如,使用Redis作为缓存技术,只需要导入Spring Data Redis的maven坐标即可。

比如此处@CachePut使用例子
@CachePut(value = "name",key = "#result.id")//将方法返回值放入缓存 ,SpEL方法格式获得数据
publie User save(User user){
  userService.save(user);
  return user;
  }
 //此处value就是缓存的名称,每个缓存下面可以有多个key
 //key:缓存的key
//清理指定缓存
@CacheEvict(value = "userCache",key ="#p0")//或者
@CacheEvict(value = "userCache",key ="#root.args[0]")
@CacheEvict(value = "userCache",key ="#id")
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
 userService.removeById(id);
 }
@Cacheable(value = "userCache" ,key = "#id",condition = "#result != null")
@GetMapping("/{id}")
public User getById(@PathVariable Long id) {
User user = userService.getById(id);
//此时有缓存则直接返回数据,不会进入该方法
//当id查询为空时,也会返回null数据当做缓存,此时需要加@Cacheable中方法condition条件,返回值不为空时加入缓存
//(unless = "#result == null"),返回值为空时不缓存
 return user;
}
@GetMapping("/list")
@Cacheable(value = "userCache",key = "#user.id +'_'+#user.name")
public List<User> list (User user) {
  LambdaQueryWrapper <user> queryWrapper = new LambdaQueryWrapper<>();
  queryWrapper.eq(user.getId() != null,User::getId,user.getId());
  queryWrapper.eq(user.getName() != null,User::getName,user.getName());
  List<User> list = userService.list(querryWrapper):
  return list;
}

底层基于Map来实现的,此时重启服务,缓存都会消失,下面使用Redis来做缓存技术;配置文件需要配置redis的cache同时可配置缓存有效期time-to-live。文章来源地址https://www.toymoban.com/news/detail-676390.html

具体实现思路
1、导入Spring CacheRedis 相关 maven坐标
2、在application.yml中配置缓存数据的过期时间
3、在启动类上加@EnableCaching注解,开启缓存注解功能
4、在查询方法上加入@Cacheable注解
5、在修改保存方法上加入@CacheEvict注解

到了这里,关于Spring Cache框架(缓存)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三、Spring Cache + Redis 缓存数据

    Spring Cache 是一个非常优秀的缓存组件。自Spring 3.1起,提供了类似于@Transactional注解事务的注解Cache支持,且提供了Cache抽象,方便切换各种底层Cache(如:redis) 使用Spring Cache的好处:  1,提供基本的Cache抽象,方便切换各种底层Cache;  2,通过注解Cache可以实现类似于事务

    2024年02月05日
    浏览(27)
  • 【SpringBoot篇】使用Spring Cache高效处理缓存数据

    Spring Cache是一个框架,只要简单加一个注解,就能实现缓存功能。Spring Cache是Spring Framework提供的一个模块,它为应用程序添加了缓存支持。通过使用Spring Cache,你可以在方法级别上定义缓存规则,将方法的返回结果缓存起来,以提高方法调用的性能和响应速度。 是一个框架,只要简

    2024年02月05日
    浏览(45)
  • Spring Boot 3.0系列【25】数据篇之Spring Cache缓存技术使用详解

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.5 源码地址:https://gitee.com/pearl-organization/study-spring-boot3

    2023年04月14日
    浏览(30)
  • Springboot—Spring Cache 缓存方案详解及代码-Ehcache

    Spring从3.1开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术; 并支持使用 JCache(JSR-107) 注解简化我们开发。 常用的缓存实现有 RedisCache 、EhCache、ConcurrentMapCache 、Guava Cache( 谷歌) 等。 Spring Cache是一个框架,实现了基于注解的

    2024年02月03日
    浏览(31)
  • spring boot整合cache使用Ehcache 进行数据缓存

    之前的文章 spring boot整合 cache 以redis服务 处理数据缓存 便捷开发 带着大家通过spring boot整合了 cache 缓存 那么 我们就来说说 其他服务的缓存 而spring boot默认的缓存方案就是 cache 用simple模式 spring boot的强大在于它的整合能力 它将其他缓存技术整合 统一了接口 简单说 所有的

    2024年02月19日
    浏览(32)
  • 8.10 用redis实现缓存功能和Spring Cache

    什么是缓存? 缓存(Cache), 就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码。 通过Redis来缓存数据,减少数据库查询操作; 逻辑 每个分类的菜品保存一份缓存数据 数据库菜品数据有变更时清理缓存数据 如何将商品数据缓存起来。 控

    2024年02月13日
    浏览(46)
  • Spring Boot 3.2项目中使用缓存Cache的正确姿势!!!

    你是否曾想过为什么在 Spring Boot 应用中缓存是如此重要?答案在于它通过减少数据检索时间来提高性能。在本文中,我们将深入探讨缓存对微服务模式的影响,并探讨根据操作易用性、速度、可用性和可观测性等因素选择正确缓存的重要性。我们还将探讨如何最大程度地提高

    2024年02月05日
    浏览(55)
  • Guava:Cache强大的本地缓存框架

    Guava Cache是一款非常优秀的本地缓存框架。 Guava Cache 的数据结构跟 JDK1.7 的 ConcurrentHashMap 类似,提供了基于时间、容量、引用三种回收策略,以及自动加载、访问统计等功能。 基本的配置 例子中,缓存最大容量设置为 100 ( 基于容量进行回收 ),配置了 失效策略 和 刷新策

    2024年02月02日
    浏览(31)
  • spring框架,以及和spring框架相关的Java面试题和spring ioc的注入方式

    目录 一.spring来源,以及介绍 1.spring诞生的背景 2.spring框架 介绍 3.spring框架在使用中的优点以及不足 3.1优点  3.2不足 3.3总结 4.为什么要使用spring  二.将spring框架部署在IDEA中  1.替换pom.xml  2.构建spring所需要的xml文件 三.spring的三种注入方式 0.定义需要的类,方法 1.方法注入

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包