SpringBoot學習之基于注解的緩存
主要使用到的注解:
- @Cacheable(放入緩存) 能夠根據(jù)方法的請求參數(shù)對其結(jié)果進行緩存
- @CachePut(修改緩存中的值) 能夠根據(jù)方法的請求參數(shù)對其結(jié)果進行緩存,和 @Cacheable 不同的是,它每次都會觸發(fā)真實方法的調(diào)用
- @CachEvict(清除緩存) 能夠根據(jù)一定的條件對緩存進行清空
使用步驟
1、@EnableCaching 這個注解,標注在 springboot 主啟動類上,表示系統(tǒng)開啟緩存。
@EnableCaching @SpringBootApplication(scanBasePackages = CommonConstant.DEFAULT_PACKAGE_NAME) public class PortalApp { public static void main(String[] args) { SpringApplication.run(PortalApp.class, args); } }
2、在對應需要進行緩存的方法上加入對應的注解即可;
注解屬性介紹
@Cacheable() 的屬性值及釋義:
value/cacheNames = "demoCommon";//redis的第一層文件夾為demoCommon key="#id"; //系統(tǒng)自定義key值格式,相當于value下邊一層 unless = "#result==null";//方法返回值結(jié)果為空時,不存入緩存;
代碼示例如下:
//-- 根據(jù)id查詢demo @Cacheable(cacheNames = "demoCommon", unless = "#result==null", key="#id") public Demo queryById(String id) { return demoMapper.queryById(id); }
調(diào)用上述接口,會將接口返回的數(shù)據(jù)以下圖格式存入redis,接口再使用此id作為參數(shù)查詢時,會直接去緩存里拿:
@CachPut屬性值及釋義:
value/cacheNames = "demoCommon";//redis的第一層文件夾為demoCommon keyGenerator="myKeyGenerator"; //系統(tǒng)自定義key值格式,相當于value下邊一層
調(diào)用示例如下:
@CachePut(value = "demoCommon", key=#"#demo.id") public Demo updateById(Demo demo) { demoMapper.updateById(demo); return demo; }
調(diào)用上圖接口,會根據(jù)傳入的id找到對應的key緩存的值,并修改緩存中的value;
@CachEvict屬性值及釋義:
value/cacheNames = "demoCommon";//redis的第一層文件夾為demoCommon key=#"#demo.id"; //系統(tǒng)自定義key值格式,相當于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
接口需要使用多個注解標簽,則可使用此注解;示例如下:
@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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA創(chuàng)建Java項目保姆級教程(超詳細!)
這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Java項目保姆級教程的相關(guān)資料,Java是一種廣泛使用的編程語言,廣泛用于Web應用程序和客戶端應用程序的開發(fā),文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-09-09Mockito mock Kotlin Object類方法報錯解決方法
這篇文章主要介紹了Mockito mock Kotlin Object類方法報錯解決方法,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09使用SpringBoot和JPA實現(xiàn)批量處理新增、修改
最近項目需要在JPA中使用ID進行批量更新,所以下面這篇文章主要給大家介紹了關(guān)于使用SpringBoot和JPA實現(xiàn)批量處理新增、修改的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06解決idea爆紅 cant resolve symbol String的問題解析
連著出差幾個禮拜沒有使用idea開發(fā)工具,突然一天打開電腦發(fā)現(xiàn)idea里的代碼全部爆紅,懵逼不如所措,很多朋友建議我按住Alt+回車設(shè)置jdk就能解決,但是仍然報錯,經(jīng)過幾個小時的倒騰最終解決,遇到此問題的朋友參考下本文吧2021-06-06SpringCloud Feign服務(wù)調(diào)用請求方式總結(jié)
這篇文章主要介紹了SpringCloud Feign服務(wù)調(diào)用方式總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04