亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

1、添加 @EnableCaching

使用 @EnableCaching 標(biāo)識在 SpringBoot 的主啟動類上,開啟基于注解的緩存。

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

2、添加@Cacheable

在需要緩存的方法上添加@Cacheable注解。以后查詢相同的數(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ù)類型必須支持序列化或?qū)崿F(xiàn)了Serializable接口,否則數(shù)據(jù)沒法緩存。

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

3、常用屬性說明

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

4、@CacheEvict注解

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

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

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

相關(guān)文章

  • 淺談java中unmodifiableList方法的應(yīng)用場景

    淺談java中unmodifiableList方法的應(yīng)用場景

    下面小編就為大家?guī)硪黄獪\談java中unmodifiableList方法的應(yīng)用場景。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java利用Redis實現(xiàn)消息隊列的示例代碼

    Java利用Redis實現(xiàn)消息隊列的示例代碼

    本篇文章主要介紹了Java利用Redis實現(xiàn)消息隊列的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • springboot使用war包部署到外部tomcat過程解析

    springboot使用war包部署到外部tomcat過程解析

    這篇文章主要介紹了springboot使用war包部署到外部tomcat過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot整合flyway實現(xiàn)自動創(chuàng)建表的方法

    SpringBoot整合flyway實現(xiàn)自動創(chuàng)建表的方法

    這篇文章主要介紹了SpringBoot整合flyway實現(xiàn)自動創(chuàng)建表的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 5分鐘快速上手Spring Boot

    5分鐘快速上手Spring Boot

    這篇文章主要介紹了5分鐘快速上手Spring Boot,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 解決Lombok注解不起作用的問題

    解決Lombok注解不起作用的問題

    這篇文章主要介紹了解決Lombok注解不起作用的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一篇文章搞定Struts2的類型轉(zhuǎn)換

    一篇文章搞定Struts2的類型轉(zhuǎn)換

    這篇文章主要介紹了關(guān)于Struts2類型轉(zhuǎn)換的相關(guān)資料,文中主要介紹了Struts2的類型轉(zhuǎn)換器和自定義類型轉(zhuǎn)換器的實現(xiàn),有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • maven手動上傳jar包示例及圖文步驟過程

    maven手動上傳jar包示例及圖文步驟過程

    這篇文章主要為大家介紹了maven手動上傳jar包示例及圖文步驟過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • JavaMail入門教程之接收郵件(4)

    JavaMail入門教程之接收郵件(4)

    這篇文章主要為大家詳細介紹了JavaMail入門教程之接收郵件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • SpringBoot項目啟動后立馬自動關(guān)閉的解決方案

    SpringBoot項目啟動后立馬自動關(guān)閉的解決方案

    這篇文章主要介紹了SpringBoot項目啟動后立馬自動關(guān)閉的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論