最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot使用@Cacheable注解實(shí)現(xiàn)數(shù)據(jù)緩存

 更新時(shí)間:2023年10月09日 10:39:10   作者:sg_knight  
本文介紹如何在Springboot中通過(guò)@Cacheable注解實(shí)現(xiàn)數(shù)據(jù)緩存,在每次調(diào)用添加了@Cacheable注解的方法時(shí),Spring 會(huì)檢查指定參數(shù)的指定目標(biāo)方法是否已經(jīng)被調(diào)用過(guò),文中有詳細(xì)的代碼示例,需要的朋友可以參考下

1、添加 @EnableCaching

使用 @EnableCaching 標(biāo)識(shí)在 SpringBoot 的主啟動(dòng)類(lèi)上,開(kāi)啟基于注解的緩存。

@EnableCaching
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application .class, args);
    }
}

2、添加@Cacheable

在需要緩存的方法上添加@Cacheable注解。以后查詢(xún)相同的數(shù)據(jù),直接從緩存中取,不需要調(diào)用方法。

@Cacheable(value = "areaTreeData")
public CommonResult<List<Map<String, Object>>> queryTreeData(Long pId, Long lv) {
  Map<String, Object> map = new HashMap<>();
  map.put("state", 1);
  List<Map<String, Object>> list = getTreeData(map, pId, lv);
  return new CommonResult<>(list);
}

注意:

1、返回的數(shù)據(jù)類(lèi)型必須支持序列化或?qū)崿F(xiàn)了Serializable接口,否則數(shù)據(jù)沒(méi)法緩存。

2、只有直接調(diào)用該方法才能緩存,不能通過(guò)類(lèi)中的其他方法來(lái)調(diào)用。

3、常用屬性說(shuō)明

  • cacheNames/value :用來(lái)指定緩存組件的名字
  • key :緩存數(shù)據(jù)時(shí)使用的 key,可以用它來(lái)指定。默認(rèn)是使用方法參數(shù)的值。(這個(gè) key 你可以使用 spEL 表達(dá)式來(lái)編寫(xiě))
  • keyGenerator :key 的生成器。 key 和 keyGenerator 二選一使用
  • cacheManager :可以用來(lái)指定緩存管理器。從哪個(gè)緩存管理器里面獲取緩存。
  • condition :可以用來(lái)指定符合條件的情況下才緩存
  • unless :否定緩存。當(dāng) unless 指定的條件為 true ,方法的返回值就不會(huì)被緩存。當(dāng)然你也可以獲取到結(jié)果進(jìn)行判斷。(通過(guò) #result 獲取方法結(jié)果)
  • sync :是否使用異步模式。

4、@CacheEvict注解

@CachEvict 的作用 主要針對(duì)方法配置,能夠根據(jù)一定的條件對(duì)緩存進(jìn)行清空。常用屬性參數(shù)如下:

參數(shù)解釋example
value緩存的名稱(chēng),在 spring 配置文件中定義,必須指定至少一個(gè)@CacheEvict(value=”my cache”)
key緩存的 key,可以為空,如果指定要按照 SpEL 表達(dá)式編寫(xiě),如果不指定,則缺省按照方法的所有參數(shù)進(jìn)行組合@CacheEvict(value=”testcache”,key=”#userName”)
condition緩存的條件,可以為空,使用 SpEL 編寫(xiě),返回 true 或者 false,只有為 true 才進(jìn)行緩存@CacheEvict(value=”testcache”,condition=”#userName.length()>2”)
allEntries是否清空所有緩存內(nèi)容,缺省為 false,如果指定為 true,則方法調(diào)用后將立即清空所有緩存@CachEvict(value=”testcache”,allEntries=true)
beforeInvocation是否在方法執(zhí)行前就清空,缺省為 false,如果指定為 true,則在方法還沒(méi)有執(zhí)行的時(shí)候就清空緩存,缺省情況下,如果方法執(zhí)行拋出異常,則不會(huì)清空緩存@CachEvict(value=”testcache”,beforeInvocation=true)
@CacheEvict(value = "areaTreeData", allEntries = true, beforeInvocation = true)
public Integer save(SysArea sysArea) {
   return mapper.insertSelective(sysArea);
}

以上就是Springboot使用@Cacheable注解實(shí)現(xiàn)數(shù)據(jù)緩存的詳細(xì)內(nèi)容,更多關(guān)于Springboot數(shù)據(jù)緩存的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot通過(guò)ip獲取歸屬地的幾種方式分享

    SpringBoot通過(guò)ip獲取歸屬地的幾種方式分享

    在日常我們逛網(wǎng)站的時(shí)候會(huì)發(fā)現(xiàn)我們登錄后會(huì)出現(xiàn)歸屬地信息,例如:我在廣州登錄會(huì)顯示廣東廣州,有些更加精確的會(huì)顯示到區(qū)縣,那么我們來(lái)看看有哪些方式來(lái)獲取歸屬地信息,今天我們來(lái)聊一聊
    2023-09-09
  • Java通過(guò)notify和wait實(shí)現(xiàn)線(xiàn)程間的通信功能

    Java通過(guò)notify和wait實(shí)現(xiàn)線(xiàn)程間的通信功能

    在軟件開(kāi)發(fā)中,線(xiàn)程是實(shí)現(xiàn)并發(fā)執(zhí)行的重要手段,然而,線(xiàn)程之間的協(xié)作與通信卻是開(kāi)發(fā)者必須重點(diǎn)考慮的挑戰(zhàn)之一,Java作為一種廣泛應(yīng)用于多線(xiàn)程編程的語(yǔ)言,本文將深入探討Java中通過(guò)notify和wait實(shí)現(xiàn)線(xiàn)程間通信的機(jī)制,需要的朋友可以參考下
    2024-06-06
  • Springboot整合Mybatispuls的實(shí)例詳解

    Springboot整合Mybatispuls的實(shí)例詳解

    這篇文章主要介紹了Springboot整合Mybatispuls的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot-application.yml多環(huán)境配置詳解

    SpringBoot-application.yml多環(huán)境配置詳解

    本文主要介紹了SpringBoot-application.yml多環(huán)境配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Maven屬性與版本管理詳細(xì)步驟分解

    Maven屬性與版本管理詳細(xì)步驟分解

    這篇文章主要介紹了Maven中關(guān)于屬性與版本控制管理的步驟操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • java利用POI讀取excel文件的方法

    java利用POI讀取excel文件的方法

    這篇文章主要介紹了java利用POI讀取excel文件的方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • spring IOC中三種依賴(lài)注入方式

    spring IOC中三種依賴(lài)注入方式

    這篇文章主要介紹了spring IOC中三種依賴(lài)注入方式,Spring使用注入方式,為什么使用注入方式,這系列問(wèn)題實(shí)際歸結(jié)起來(lái)就是一句話(huà),Spring的注入和IoC(本人關(guān)于IoC的闡述)反轉(zhuǎn)控制是一回事
    2021-08-08
  • Java微信掃碼登錄功能并實(shí)現(xiàn)認(rèn)證授權(quán)全過(guò)程

    Java微信掃碼登錄功能并實(shí)現(xiàn)認(rèn)證授權(quán)全過(guò)程

    這篇文章主要給大家介紹了關(guān)于Java微信掃碼登錄功能并實(shí)現(xiàn)認(rèn)證授權(quán)的相關(guān)資料,要在Java中實(shí)現(xiàn)微信掃碼登錄,您可以按照以下步驟進(jìn)行操作,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Java利用Socket實(shí)現(xiàn)網(wǎng)絡(luò)通信功能

    Java利用Socket實(shí)現(xiàn)網(wǎng)絡(luò)通信功能

    在早期的網(wǎng)絡(luò)編程中,Socket是很常見(jiàn)的實(shí)現(xiàn)技術(shù)之一,比如早期的聊天室,就是基于這種技術(shù)進(jìn)行實(shí)現(xiàn)的,另外現(xiàn)在有些消息推送,也可以基于Socket實(shí)現(xiàn),本文小編給大家介紹了Java利用Socket實(shí)現(xiàn)網(wǎng)絡(luò)通信功能的示例,需要的朋友可以參考下
    2023-11-11
  • Java?EE實(shí)現(xiàn)用戶(hù)后臺(tái)管理系統(tǒng)

    Java?EE實(shí)現(xiàn)用戶(hù)后臺(tái)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java?EE實(shí)現(xiàn)用戶(hù)后臺(tái)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評(píng)論

广丰县| 邹平县| 鸡东县| 康定县| 石泉县| 平乐县| 临汾市| 望江县| 临泽县| 随州市| 慈利县| 女性| 兴安盟| 高要市| 靖边县| 双牌县| 彩票| 常山县| 西充县| 光泽县| 谷城县| 榆林市| 东乡县| 仙桃市| 沐川县| 札达县| 景宁| 沈阳市| 宁陵县| 甘泉县| 门源| 冷水江市| 陵川县| 日照市| 开封县| 仁化县| 衡山县| 诸暨市| 屏南县| 晋城| 石林|