解決@Cacheable在同一個類中方法調用不起作用的問題
更新時間:2021年07月17日 15:50:21 作者:seapeak007
這篇文章主要介紹了解決@Cacheable在同一個類中方法調用不起作用的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
@Cacheable在同一類中方法調用無效

上述圖片中,同一個類中genLiveBullets()方法調用同類中的queryLiveByRoom()方法,這樣即便標識了Cacheable標簽,再次調用時也沒有走緩存。
cacheable不支持內部方法調用的方式,需要修改為把請求緩存的改成service方式,Aservice中的genLiveBullets()調用Bservice中的queryLiveByRoom()
見下圖,已測試再次調用時為走的緩存。

@Cacheable的使用總結
@Cacheable(value = "PERSON",key = "#tagId+'_'+#zz") public List<Person> getPersonByTagid(Long tagId,String zz)
- 其中value表示該方法返回的參數的緩存存在那個Cache里(即為緩存塊的名字)
- 緩存結果以一個鍵值對存放在緩存中,注解中key即為鍵值對的key;value即為方法返回的結果
- key用雙引號,里面#加上方法的參數:獲取方法的參數, ''表示在參數之間添加分隔符
常規(guī)使用方法
- 在springboot的啟動類上使用@EnableCaching//開啟緩存
- 在方法上直接使用@Cacheable()使用緩存
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring?Boot?Shiro?auto-configure工作流程詳解
這篇文章主要為大家介紹了Spring?Boot?Shiro?auto-configure工作流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
java開發(fā)使用StringUtils.split避坑詳解
這篇文章主要為大家介紹了java開發(fā)使用StringUtils.split避坑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

