欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot學(xué)習(xí)之基于注解的緩存

 更新時(shí)間:2022年03月30日 11:21:20   作者:這世界那么多上官婉兒  
spring boot對(duì)緩存支持非常靈活,我們可以使用默認(rèn)的EhCache,也可以整合第三方的框架,只需配置即可,下面這篇文章主要給大家介紹了關(guān)于SpringBoot學(xué)習(xí)之基于注解緩存的相關(guān)資料,需要的朋友可以參考下

主要使用到的注解:

  • @Cacheable(放入緩存) 能夠根據(jù)方法的請(qǐng)求參數(shù)對(duì)其結(jié)果進(jìn)行緩存
  • @CachePut(修改緩存中的值) 能夠根據(jù)方法的請(qǐng)求參數(shù)對(duì)其結(jié)果進(jìn)行緩存,和 @Cacheable 不同的是,它每次都會(huì)觸發(fā)真實(shí)方法的調(diào)用
  • @CachEvict(清除緩存) 能夠根據(jù)一定的條件對(duì)緩存進(jìn)行清空

使用步驟

1、@EnableCaching 這個(gè)注解,標(biāo)注在 springboot 主啟動(dòng)類上,表示系統(tǒng)開啟緩存。

@EnableCaching
@SpringBootApplication(scanBasePackages = CommonConstant.DEFAULT_PACKAGE_NAME)
public class PortalApp {
    public static void main(String[] args) {
        SpringApplication.run(PortalApp.class, args);
        }
    }

2、在對(duì)應(yīng)需要進(jìn)行緩存的方法上加入對(duì)應(yīng)的注解即可;

注解屬性介紹

@Cacheable() 的屬性值及釋義:

value/cacheNames = "demoCommon";//redis的第一層文件夾為demoCommon key="#id"; //系統(tǒng)自定義key值格式,相當(dāng)于value下邊一層 unless = "#result==null";//方法返回值結(jié)果為空時(shí),不存入緩存;

代碼示例如下:

//-- 根據(jù)id查詢demo
@Cacheable(cacheNames = "demoCommon", unless = "#result==null", key="#id")
public Demo queryById(String id) {
    return demoMapper.queryById(id);
}

調(diào)用上述接口,會(huì)將接口返回的數(shù)據(jù)以下圖格式存入redis,接口再使用此id作為參數(shù)查詢時(shí),會(huì)直接去緩存里拿:

@CachPut屬性值及釋義:

value/cacheNames = "demoCommon";//redis的第一層文件夾為demoCommon keyGenerator="myKeyGenerator"; //系統(tǒng)自定義key值格式,相當(dāng)于value下邊一層

調(diào)用示例如下:

@CachePut(value = "demoCommon", key=#"#demo.id")
public Demo updateById(Demo demo) {
    demoMapper.updateById(demo);
    return demo;
}

調(diào)用上圖接口,會(huì)根據(jù)傳入的id找到對(duì)應(yīng)的key緩存的值,并修改緩存中的value;

@CachEvict屬性值及釋義:

value/cacheNames = "demoCommon";//redis的第一層文件夾為demoCommon key=#"#demo.id"; //系統(tǒng)自定義key值格式,相當(dāng)于value下邊一層 allEntries="true";// 是否清空所有緩存內(nèi)容,缺省為 false,如果指定為 true,則方法調(diào)用后將立即清空value/cachaeNames下邊的所有緩存

@CacheEvict(value = "demoCommon",allEntries="true",key = "#demo.id")
public Demo deleteById(Demo demo) {
    demoMapper.deleteById(demo);
    return demo;
}

調(diào)用接口后,redis為:

@Caching

接口需要使用多個(gè)注解標(biāo)簽,則可使用此注解;示例如下:

@Caching(put = {
        @CachePut(value = "demoCommon1", key = "#demo.id")
        @CachePut(value = "demoCommon2", key = "#demo.id")
        @CachePut(value = "demoCommon3", key = "#demo.id")
})
public Demo updateByIdC(Demo demo) {
    demoMapper.updateById(demo);
    return demo;
}

總結(jié)

到此這篇關(guān)于SpringBoot基于注解的緩存的文章就介紹到這了,更多相關(guān)SpringBoot注解的緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA創(chuàng)建Java項(xiàng)目保姆級(jí)教程(超詳細(xì)!)

    IDEA創(chuàng)建Java項(xiàng)目保姆級(jí)教程(超詳細(xì)!)

    這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Java項(xiàng)目保姆級(jí)教程的相關(guān)資料,Java是一種廣泛使用的編程語言,廣泛用于Web應(yīng)用程序和客戶端應(yīng)用程序的開發(fā),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • RabbitMQ消息有效期與死信的處理過程

    RabbitMQ消息有效期與死信的處理過程

    利用DLX,當(dāng)消息在一個(gè)隊(duì)列中變成死信?(dead?message)?之后,它能被重新publish到另一個(gè)Exchange,這個(gè)Exchange就是DLX,本文重點(diǎn)給大家介紹RabbitMQ消息有效期與死信的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Mockito mock Kotlin Object類方法報(bào)錯(cuò)解決方法

    Mockito mock Kotlin Object類方法報(bào)錯(cuò)解決方法

    這篇文章主要介紹了Mockito mock Kotlin Object類方法報(bào)錯(cuò)解決方法,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改

    使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改

    最近項(xiàng)目需要在JPA中使用ID進(jìn)行批量更新,所以下面這篇文章主要給大家介紹了關(guān)于使用SpringBoot和JPA實(shí)現(xiàn)批量處理新增、修改的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Mybatis的Mapper中的方法為什么不能重載

    Mybatis的Mapper中的方法為什么不能重載

    這篇文章主要介紹了Mybatis的Mapper中的方法為什么不能重載,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 解決idea爆紅 cant resolve symbol String的問題解析

    解決idea爆紅 cant resolve symbol String的問題解析

    連著出差幾個(gè)禮拜沒有使用idea開發(fā)工具,突然一天打開電腦發(fā)現(xiàn)idea里的代碼全部爆紅,懵逼不如所措,很多朋友建議我按住Alt+回車設(shè)置jdk就能解決,但是仍然報(bào)錯(cuò),經(jīng)過幾個(gè)小時(shí)的倒騰最終解決,遇到此問題的朋友參考下本文吧
    2021-06-06
  • JDBC獲取數(shù)據(jù)庫連接的5種方式實(shí)例

    JDBC獲取數(shù)據(jù)庫連接的5種方式實(shí)例

    JDBC是一種用于執(zhí)行SQL語句的JavaAPI,為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法,這篇文章主要給大家介紹了關(guān)于JDBC獲取數(shù)據(jù)庫連接的5種方式,需要的朋友可以參考下
    2022-06-06
  • SpringCloud Feign服務(wù)調(diào)用請(qǐng)求方式總結(jié)

    SpringCloud Feign服務(wù)調(diào)用請(qǐng)求方式總結(jié)

    這篇文章主要介紹了SpringCloud Feign服務(wù)調(diào)用方式總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 如何通過jstack命令dump線程信息

    如何通過jstack命令dump線程信息

    這篇文章主要介紹了如何通過jstack命令dump線程信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java批量修改文件后綴名方法總結(jié)

    java批量修改文件后綴名方法總結(jié)

    在本篇文章里小編給大家分享了關(guān)于java批量修改文件后綴名方法和相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-03-03

最新評(píng)論