• spring boot simple类型cache使用


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

    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-cache</artifactId>
    4. <version>2.5.3</version>
    5. </dependency>

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

    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-data-redis</artifactId>
    4. <version>2.5.3</version>
    5. </dependency>

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

    1. spring:
    2. redis:
    3. lettuce:
    4. pool:
    5. min-idle=0:
    6. max-wait=-1ms:
    7. max-active=3:
    8. max-idle=3:
    9. db: ${REDIS_DB:}
    10. host: ${REDIS_HOST:}
    11. password: ${REDIS_PASSWORD:}
    12. port: ${REDIS_PORT:}
    13. # 有了上面的配置后,必须指定下面的配置,否则会自动使用基于 redis 的 cache
    14. spring:
    15. cache:
    16. type: simple

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

    1. @Component
    2. public class CacheTools {
    3. private static Logger log = LoggerFactory.getLogger(CacheTools.class);
    4. @Cacheable("mapData")
    5. public Map<String,String> getCacheData() {
    6. Map<String,String> cacheMap=new HashMap<>();
    7. cacheMap.put("k1","v1");
    8. cacheMap.put("k2","v2");
    9. cacheMap.put("k3","v3");
    10. log.info(" init spring boot cache, total count={} ", cacheMap.size());
    11. return cacheMap;
    12. }
    13. @CacheEvict(value = "mapData")
    14. public void clearCache(){
    15. }
    16. @CachePut(cacheNames = "mapData", key = "#key")
    17. public void updateCache(String key, String value){
    18. }
    19. }

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

  • 相关阅读:
    下载 VMware Workstation Pro
    安科瑞精密配电多回路监控装置在轨道交通项目上的应用
    服务器重启后的故障原因排查
    openGauss+KeepAlived(故障转移)
    嵌入式实时操作系统的设计与开发 (启动内核学习)
    计算机毕业论文内容参考|基于spingboot的金融投资顾问推荐系统
    Celery的基本使用
    电脑硬盘被格式化了还能恢复吗?
    【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库
    SQL语言---视图操作
  • 原文地址:https://blog.csdn.net/u010454030/article/details/133793159