首页 > 其他分享 >Spring Boot数据缓存之声明式缓存支持

Spring Boot数据缓存之声明式缓存支持

时间:2024-04-08 19:46:37浏览次数:13  
标签:Cacheable Spring Boot 缓存 CacheManager 数据

  在Spring Boot数据缓存之Spring缓存抽象 @Cacheable初体验对声明式数据缓存有了初步的体验,那么Spring Boot是如何支持数据缓存的呢?由于Mybatis本身也具备缓存的功能,那怎么知道案例中的环境使用的是Spring Boot中提供的还是Mybatis自带的缓存功能呢?将数据访问的方式改为JPA方式(使用参考数据访问 Spring Data JPA)在Spring Data JPA应用之查询操作初体验案例基础上探究一二:

  在Spring中使用缓存技术的关键是配置CacheManager,下图是Spring内置的CacheManager实现:

            

  而如上篇案例中并没有配置CacheManager而是Spring Boot自动配置了多个CacheManager的实现,可以看下其自动配置包中的内容:根据CacheType中类型定义匹配对应的Cache类

            

  查看以上任意一个Configuration:

            

   可以看到满足一定条件才会加载该Cache Bean。最后可以看到在不做任何额外配置的情况下,默认使用的是SimpleCacheConfiguration——即ConcurrentMapCacheManager:

            

  Spring Boot支持以“Spring.cache”为前缀的属性类配置缓存:

            

  以上是关于@EnableCaching注解的分析。那配合使用的还有@Cacheable、@CachePut、@CacheEvict,下面分别进行分析

  @Cacheable

            

            

    测试结果是:

      访问localhost:8080/resume/2,控制台上显示。再次访问localhost:8080/resume/2,此时控制台没有再出现这样的内容也可以查询到结果。

  @CachePut

            

            

  注意一定要有绿框中的内容否则缓存不生效。数据保存后,将结果保存到了缓存(绿框中的result就是保存的数据)。从测试结果看save以后,查询该数据控制台无输出直接从缓存中获取数据。

  @CacheEvict

            

            

 

标签:Cacheable,Spring,Boot,缓存,CacheManager,数据
From: https://www.cnblogs.com/ilovebath/p/18111478

相关文章

  • CSCI 2122任缓存和内存层次结构 解析
    CSCI2122任务5截止日期:2024年4月9日星期二晚上11:59,通过git提交目标本课业的目的是练习用C进行编码,并强化中讨论的概念类的指针、缓存和内存层次结构。在这项任务中,您将实现一个使用有限内存的缓存模拟器。准备1.完成工作分配0,或确保已安装完成工作分配所需的工具。2.克隆......
  • 06-SpringBootWeb快速入门
        ......
  • 基于Spring Boot的医院门诊信息管理系统
    目录前言 一、技术栈二、系统功能介绍三、核心代码1、登录模块 2、文件上传模块3、代码封装前言系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对医院门诊信息的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的......
  • 苍穹外卖10(Spring Task定时任务,WebSocket双向通信,订单状态定时处理,来电提醒,客户催单)
    目录一、SpringTask1.介绍2.入门1使用步骤2使用示例3.详解1@Scheduled注解2cron表达式1cron表达式6个域2各个域的取值说明4.小结二、订单状态定时处理1.需求分析1问题分析2功能需求2.代码开发1修改引导类加@EnableScheduling2创建OrderTask......
  • ThinkPHP 实现简单的缓存锁
    使用ThinkPHP实现简单的缓存锁在开发过程中,为了避免重复提交等问题,我们常常需要使用缓存锁来控制并发访问。本文将介绍如何利用ThinkPHP框架实现一个简单的缓存锁功能。锁Key的生成在实现缓存锁之前,首先需要确定锁的唯一标识,这里我们采用了学生ID和费用数据ID......
  • Springboot + mybatis-plus项目
    作为小白第一次做了一个Springboot+mybatis-plus的demo总结和分享一下心得。 在Plugins里面下载mybatisX搭建srping初始环境<!--使用mybatis-plus需要导入的依赖:--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</ar......
  • 在springboot项目中上传文件
    在springboot项目中上传文件需要用到FlieUtil工具类:publicclassFileUtil{ publicstaticbyte[]FileToByte(Filefile)throwsIOException{ //将数据转为流 @SuppressWarnings("resource") InputStreamcontent=newFileInputStream(file); ByteArrayOutpu......
  • Drools业务规则管理系统25_Spring整合Drools7
    一、Spring简单整合Drools在项目中使用Drools时往往会跟Spring整合来使用。具体整合步骤如下:1、创建maven工程drools_spring并配置pom.xml2、创建规则目录/resources/rules,rules目录中创建规则文件helloworld.drl3、创建Spring配置文件/resources/spring.xml......
  • 【Spring高级】SpringMVC中控制器方法HandlerMethod的工作流程
    目录流程图演示流程图先分3个部分来看下整体的流程图图1ServletInvocableHandlerMethod是SpringFramework中对HandlerMethod的实现。ServletInvocableHandlerMethod的整体架构图......
  • 基于SpringBoot+微信小程序的智慧医疗线上预约小程序
    一、项目背景介绍:近年来,随着互联网技术的不断发展,人们的生活和工作方式也在逐渐改变。其中,医疗行业也受到了极大的影响。由于传统医疗行业存在着很多问题,例如就医难、看病贵等,因此出现了许多新型医疗模式。线上预约挂号是其中一种新型医疗模式,它通过互联网技术与现代医学......