您好,登錄后才能下訂單哦!
本篇內容介紹了“如何解決@Cacheable在同一個類中方法調用不起作用的問題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
上述圖片中,同一個類中genLiveBullets()方法調用同類中的queryLiveByRoom()方法,這樣即便標識了Cacheable標簽,再次調用時也沒有走緩存。
cacheable不支持內部方法調用的方式,需要修改為把請求緩存的改成service方式,Aservice中的genLiveBullets()調用Bservice中的queryLiveByRoom()
見下圖,已測試再次調用時為走的緩存。
@Cacheable(value = "PERSON",key = "#tagId+'_'+#zz") public List<Person> getPersonByTagid(Long tagId,String zz)
其中value表示該方法返回的參數的緩存存在那個Cache里(即為緩存塊的名字)
緩存結果以一個鍵值對存放在緩存中,注解中key即為鍵值對的key;value即為方法返回的結果
key用雙引號,里面#加上方法的參數:獲取方法的參數, ''表示在參數之間添加分隔符
在springboot的啟動類上使用@EnableCaching//開啟緩存
在方法上直接使用@Cacheable()使用緩存
“如何解決@Cacheable在同一個類中方法調用不起作用的問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。