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里面同時還引入了: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è)置的話,就會報: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里面直接調(diào)用,第一次的沒有緩存的時候,會執(zhí)行該段代碼完成初始化,后續(xù)再調(diào)用的時候,直接就走cache了,不會在執(zhí)行代碼了, 同理執(zhí)行緩存清空和更新也類似
到此這篇關(guān)于spring boot simple類型cache使用的文章就介紹到這了,更多相關(guān)spring boot simple類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springmvc如何實現(xiàn)向前臺傳遞數(shù)據(jù)
這篇文章主要介紹了Springmvc如何實現(xiàn)向前臺傳遞數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07springboot 啟動項目打印接口列表的實現(xiàn)
這篇文章主要介紹了springboot 啟動項目打印接口列表的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決
這篇文章主要介紹了SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07解決使用mybatis-plus時,生成的SQL大寫變小寫加下劃線問題
這篇文章主要介紹了解決使用mybatis-plus時,生成的SQL大寫變小寫加下劃線問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12