spring boot simple類型cache使用詳解
注意:這里用的不是 redis 的緩存,simple 的緩存默認(rèn)用的是 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里面同時(shí)還引入了: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 相關(guān)屬性,那么請務(wù)必指定緩存類型為 simple,否則會自動使用基于 redis 的 cache,如果你又沒有配置redis相關(guān)設(shè)置的話,就會報(bào):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然后直接新建一個(gè)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里面直接調(diào)用,第一次的沒有緩存的時(shí)候,會執(zhí)行該段代碼完成初始化,后續(xù)再調(diào)用的時(shí)候,直接就走cache了,不會在執(zhí)行代碼了, 同理執(zhí)行緩存清空和更新也類似
到此這篇關(guān)于spring boot simple類型cache使用的文章就介紹到這了,更多相關(guān)spring boot simple類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javaweb 實(shí)現(xiàn)文件下載的方法及實(shí)例代碼
這篇文章主要介紹了javaweb 實(shí)現(xiàn)文件下載的方法的相關(guān)資料,這里提供了實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-11-11
下面小編就為大家?guī)硪黄狫ava創(chuàng)建數(shù)組的幾種方式總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望能給大家?guī)韼椭?/div> 2021-06-06
MyBatis 擴(kuò)展BaseTypeHandler 轉(zhuǎn)換泛型 JSON 列表的解
本文詳細(xì)介紹了MyBatis中處理JSON轉(zhuǎn)換的bug及其解決方法,文章還介紹了如何處理抽象類和自定義對象的JSON轉(zhuǎn)換,并提供了一個(gè)基類AbstractListTypeHandler作為示例,最后,文章附上了MyBatis內(nèi)建的javaTypeAlias鏈接,感興趣的朋友跟隨小編一起看看吧2025-12-12
基于Java+Selenium實(shí)現(xiàn)保存網(wǎng)站登錄數(shù)據(jù)的詳細(xì)指南
在使用 Selenium 進(jìn)行自動化測試時(shí),頻繁地手動登錄網(wǎng)站可能會非常耗時(shí),為了提高效率,我們可以采取一些措施來保存網(wǎng)站的登錄數(shù)據(jù),本文將詳細(xì)介紹兩種常見的方法,需要的朋友可以參考下2025-08-08
apollo動態(tài)刷新ConfigurationProperties注解標(biāo)注的配置類方式
文章介紹了在Spring Boot中使用Apollo動態(tài)刷新ConfigurationProperties注解標(biāo)注的配置類時(shí)遇到的問題,以及官方推薦的兩種解決方案:@RefreshScope和通過EnvironmentChangeEvent,文章通過創(chuàng)建一個(gè)Apollo監(jiān)聽類并觸發(fā)EnvironmentChangeEvent來實(shí)現(xiàn)配置屬性的實(shí)時(shí)更新2025-12-12
java擴(kuò)展Hibernate注解支持java8新時(shí)間類型
這篇文章主要介紹了java擴(kuò)展Hibernate注解支持java8新時(shí)間類型,需要的朋友可以參考下2014-04-04最新評論

