spring boot simple类型cache使用详解

 更新时间:2023年10月17日 11:24:14   作者:三劫散仙  
这篇文章主要介绍了spring boot simple类型cache使用,这里用的不是 redis 的缓存,simple 的缓存默认用的是java的ConcurrentHashMap, 单纯的simple缓存,本文给大家介绍的非常详细,需要的朋友可以参考下

注意:这里用的不是 redis 的缓存,simple 的缓存默认用的是 java 的 ConcurrentHashMap, 单纯的 simple 缓存,只需要引入下面的 pom 依赖即可:spring-boot-starter-cache

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

如果你的pom里面同时还引入了:spring-boot-starter-data-redis

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.5.3</version>
        </dependency>

并且配置了 spring.redis 相关属性,那么请务必指定缓存类型为 simple,否则会自动使用基于 redis 的 cache,如果你又没有配置redis相关设置的话,就会报:local class incompatible: stream classdesc serialVersionUID

spring:
  redis:
    lettuce:
      pool:
        min-idle=0:
        max-wait=-1ms:
        max-active=3:
        max-idle=3:
    db: ${REDIS_DB:}
    host: ${REDIS_HOST:}
    password: ${REDIS_PASSWORD:}
    port: ${REDIS_PORT:}
# 有了上面的配置后,必须指定下面的配置,否则会自动使用基于 redis 的 cache
spring:
  cache:
    type: simple

然后直接新建一个Bean,配置如下的代码即可:

@Component
public class CacheTools {
    private static Logger log = LoggerFactory.getLogger(CacheTools.class);
    @Cacheable("mapData")
    public Map<String,String> getCacheData() {
        Map<String,String> cacheMap=new HashMap<>();
        cacheMap.put("k1","v1");
        cacheMap.put("k2","v2");
        cacheMap.put("k3","v3");
        log.info(" init spring boot cache, total count={} ", cacheMap.size());
        return cacheMap;
    }
    @CacheEvict(value = "mapData")
    public void clearCache(){
    }
    @CachePut(cacheNames = "mapData", key = "#key")
    public void updateCache(String key, String value){
    }
}

这样就可以了,然后在Controller里面直接调用,第一次的没有缓存的时候,会执行该段代码完成初始化,后续再调用的时候,直接就走cache了,不会在执行代码了, 同理执行缓存清空和更新也类似

到此这篇关于spring boot simple类型cache使用的文章就介绍到这了,更多相关spring boot simple类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现线程池

    SpringBoot实现线程池

    现在由于系统越来越复杂,导致很多接口速度变慢,这时候就会想到可以利用线程池来处理一些耗时并不影响系统的操作。本文就介绍了SpringBoot线程池的使用,感兴趣的可以了解一下
    2021-06-06
  • Java8通过Function获取字段名的步骤

    Java8通过Function获取字段名的步骤

    这篇文章主要介绍了Java8通过Function获取字段名,需要的朋友可以参考下
    2020-04-04
  • javaweb 实现文件下载的方法及实例代码

    javaweb 实现文件下载的方法及实例代码

    这篇文章主要介绍了javaweb 实现文件下载的方法的相关资料,这里提供了实现代码,需要的朋友可以参考下
    2016-11-11
  • 使用Java打印出10行的杨辉三角形的完整代码

    使用Java打印出10行的杨辉三角形的完整代码

    杨辉三角形是一个非常经典的数学图形,它在组合数学中有着重要的地位,每个数是它左上方和右上方的数的和(除了边界上的数),本文将通过Java语言实现一个简单的程序来打印出10行的杨辉三角形,需要的朋友可以参考下
    2026-03-03
  • java数组基础详解

    java数组基础详解

    下面小编就为大家带来一篇Java创建数组的几种方式总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能给大家带来帮助
    2021-06-06
  • MyBatis 扩展BaseTypeHandler 转换泛型 JSON 列表的解决方法

    MyBatis 扩展BaseTypeHandler 转换泛型 JSON 列表的解

    本文详细介绍了MyBatis中处理JSON转换的bug及其解决方法,文章还介绍了如何处理抽象类和自定义对象的JSON转换,并提供了一个基类AbstractListTypeHandler作为示例,最后,文章附上了MyBatis内建的javaTypeAlias链接,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • Java实现按键精灵的示例代码

    Java实现按键精灵的示例代码

    这篇文章主要为大家详细介绍了如何利用Java语言实现按键精灵,文中的示例代码讲解详细,对我们学习或工作有一定的参考价值,感兴趣的可以学习一下
    2022-05-05
  • 基于Java+Selenium实现保存网站登录数据的详细指南

    基于Java+Selenium实现保存网站登录数据的详细指南

    在使用 Selenium 进行自动化测试时,频繁地手动登录网站可能会非常耗时,为了提高效率,我们可以采取一些措施来保存网站的登录数据,本文将详细介绍两种常见的方法,需要的朋友可以参考下
    2025-08-08
  • apollo动态刷新ConfigurationProperties注解标注的配置类方式

    apollo动态刷新ConfigurationProperties注解标注的配置类方式

    文章介绍了在Spring Boot中使用Apollo动态刷新ConfigurationProperties注解标注的配置类时遇到的问题,以及官方推荐的两种解决方案:@RefreshScope和通过EnvironmentChangeEvent,文章通过创建一个Apollo监听类并触发EnvironmentChangeEvent来实现配置属性的实时更新
    2025-12-12
  • java扩展Hibernate注解支持java8新时间类型

    java扩展Hibernate注解支持java8新时间类型

    这篇文章主要介绍了java扩展Hibernate注解支持java8新时间类型,需要的朋友可以参考下
    2014-04-04

最新评论