spring boot simple类型cache使用详解
注意:这里用的不是 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类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MyBatis 扩展BaseTypeHandler 转换泛型 JSON 列表的解
本文详细介绍了MyBatis中处理JSON转换的bug及其解决方法,文章还介绍了如何处理抽象类和自定义对象的JSON转换,并提供了一个基类AbstractListTypeHandler作为示例,最后,文章附上了MyBatis内建的javaTypeAlias链接,感兴趣的朋友跟随小编一起看看吧2025-12-12
基于Java+Selenium实现保存网站登录数据的详细指南
在使用 Selenium 进行自动化测试时,频繁地手动登录网站可能会非常耗时,为了提高效率,我们可以采取一些措施来保存网站的登录数据,本文将详细介绍两种常见的方法,需要的朋友可以参考下2025-08-08
apollo动态刷新ConfigurationProperties注解标注的配置类方式
文章介绍了在Spring Boot中使用Apollo动态刷新ConfigurationProperties注解标注的配置类时遇到的问题,以及官方推荐的两种解决方案:@RefreshScope和通过EnvironmentChangeEvent,文章通过创建一个Apollo监听类并触发EnvironmentChangeEvent来实现配置属性的实时更新2025-12-12


最新评论