SpringBoot使用Spring Cache高效处理缓存数据

 更新时间:2023年11月14日 08:43:57   作者:在下小吉.  
Spring Cache是一个框架,只要简单加一个注解,就能实现缓存功能,本文主要介绍了SpringBoot使用Spring Cache高效处理缓存数据,感兴趣的可以了解一下

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

🌹简述Spring Cache

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

Spring Cache 的主要特点和功能包括:

注解驱动:Spring Cache 基于注解,通过在方法上添加 @Cacheable、@CachePut、@CacheEvict 等注解,来定义缓存规则和行为。

支持多种缓存实现:Spring Cache 支持多种常见的缓存实现,包括 Ehcache、Redis、Caffeine、ConcurrentMap 等,你可以根据自己的需求选择合适的缓存提供者。

灵活的缓存配置:你可以通过配置文件或者 Java 代码来灵活地配置缓存管理器、缓存的过期时间、缓存的键生成策略等。

支持条件化的缓存操作:除了基本的缓存注解外,Spring Cache 还支持条件化的缓存操作,比如通过 SpEL 表达式来定义条件,决定是否执行缓存操作。

总之,Spring Cache 提供了一种便捷的方式来实现方法级别的缓存,使得开发者可以专注于业务逻辑的实现,而不必过多关注缓存的管理和维护。这样可以有效地提升应用程序的性能,并减少对底层缓存实现的耦合。

 常用注解

请添加图片描述

@Cacheable:触发将方法返回结果缓存。
@CacheEvict:触发从缓存中清除一条或多条数据。
@CachePut:触发将方法返回结果更新到缓存。
@Caching:组合多个缓存注解在一个方法上。
@CacheConfig:在类级别共享缓存注解的通用配置。

🌺使用SpringCache

使用SpringCache需要把下面的代码导入到pom文件中

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
            <version>2.7.3</version>
        </dependency>

这样子我们就可以使用SpringCache了

我们打开下面链接里面的文件,我们下面要使用文件中的代码进行讲解springcache_jb51.rar

我们首先来启动Redis服务

在这里插入图片描述

CacheDemoApplication.java

在启动类上加上这个注解,开启缓存注解功能

@EnableCaching

在这里插入图片描述

@Cacheable注解

进入controller包
UserController.java

加入下面的注解

@CachePut

插入数据的同时,我们还需要把数据保存到Redis中一份

在这里插入图片描述

⭐测试

我们启动项目,输入http://localhost:8888/doc.html打开接口文档进行测试

在这里插入图片描述

发现发送成功,我们去查看数据库,发现数据库已经插入了一条数据了

我们打开Redis Desktop Manager,连接成功后,发送数据
发现

user5对象已经进行了序列化

请添加图片描述

@CacheEvict

🎍一次清理一条数据

如果我们把数据库中的数据给删除掉了,那么对应的缓存数据我们也应该删除,下面我们就来使用@CacheEvict注解来删除缓存数据
我们加上这一段代码

@CacheEvict(cacheNames = "userCache",key = "#id")

然后启动项目

在这里插入图片描述

输入http://localhost:8888/doc.html打开接口文档进行测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查询数据库,发现数据库里面对应id=2的字段被删除了
Redis缓存也删除了

🎍一次删除多条数据

我们在deleteAll这个方法中进行操作
仍然加上@CacheEvict注解

@CacheEvict(cacheNames = "userCache",allEntries = true)

在这里插入图片描述

使用接口文档http://localhost:8888/doc.html发送数据,就可以删除所有缓存了

到此这篇关于SpringBoot使用Spring Cache高效处理缓存数据的文章就介绍到这了,更多相关Spring Cache缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中Properties的使用详解

    Java中Properties的使用详解

    这篇文章主要介绍了Java中Properties的使用详解的相关资料,需要的朋友可以参考下
    2016-05-05
  • SpringBoot基于数据库的定时任务统一管理的实现

    SpringBoot基于数据库的定时任务统一管理的实现

    这篇文章主要介绍了SpringBoot基于数据库的定时任务统一管理的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • HandlerMapping之RequestMappingHandlerMapping作用详解

    HandlerMapping之RequestMappingHandlerMapping作用详解

    这篇文章主要介绍了HandlerMapping之RequestMappingHandlerMapping作用详解,HandlerMapping是用来寻找Handler的,并不与Handler的类型或者实现绑定,而是根据需要定义的,那么为什么要单独给@RequestMapping实现一个HandlerMapping,需要的朋友可以参考下
    2023-10-10
  • Java concurrency之公平锁(二)_动力节点Java学院整理

    Java concurrency之公平锁(二)_动力节点Java学院整理

    这篇文章主要为大家详细介绍了Java concurrency之公平锁的第二篇内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Spring Boot整合阿里开源中间件Canal实现数据增量同步

    Spring Boot整合阿里开源中间件Canal实现数据增量同步

    这篇文章主要为大家介绍了Spring Boot整合阿里开源中间件Canal实现数据增量同步示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Java经典用法总结(二)

    Java经典用法总结(二)

    这篇文章主要介绍了Java经典用法总结,在本文中,尽量收集一些java最常用的习惯用法,特别是很难猜到的用法,本文重点讲解了java应用和输入输出常用方法,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • SpringBoot 在项目启动之后执行自定义方法的两种方式小结

    SpringBoot 在项目启动之后执行自定义方法的两种方式小结

    这篇文章主要介绍了SpringBoot 在项目启动之后执行自定义方法的两种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java  中MyBatis注解映射的实例详解

    java 中MyBatis注解映射的实例详解

    这篇文章主要介绍了java 中MyBatis注解映射的实例详解的相关资料,这里提供实例帮助大家理解这部分内容,需要的朋友可以参考下
    2017-09-09
  • Java8中方便又实用的Map函数总结

    Java8中方便又实用的Map函数总结

    java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,快跟随小编一起来看看吧
    2022-11-11
  • java web将数据导出为Excel格式文件代码片段

    java web将数据导出为Excel格式文件代码片段

    这篇文章主要为大家详细介绍了java web将数据导出为Excel格式文件代码片段,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论