你們在項目開發過程當中,或多或少都用過緩存,爲了減小數據庫的壓力,把數據放在緩存當中,當訪問的請求過來時,直接從緩存讀取。緩存通常都是基於內存的,讀取速度比較快,市面上比較常見的緩存有:memcache、redis、mongodb、guava cache等。html
你們使用緩存時,經常使用的邏輯時這樣的:redis
每個使用緩存的場景,上面的邏輯都要重寫一遍,是否是很煩躁,是否是很浪費時間。有沒有簡單的方法完成上面的邏輯?固然有了,這就是今天要向你們介紹的Spring Cache。mongodb
Spring Cache並不神祕,並且使用起來很是的方便。它是註解組成的,最經常使用的一個註解是@Cacheable。這個註解是在方法上使用的,當使用了註解的方法被調用時,會先從緩存中查詢,若是緩存中不存在,則執行方法,而後將方法的返回值放入緩存中。具體的使用方法以下:數據庫
首先,咱們在IDEA中使用Spring Boot搭建環境,在選擇依賴的頁面中,咱們選擇了Lombok和Cache,最主要的選擇Cache哦~ 項目搭建完畢後,咱們看一下pom.xml的依賴:瀏覽器
咱們看到在依賴中自動添加了cache。接下來咱們要在SpringBoot的啓動類上加上使用cache的註解@EnableCaching,如圖:緩存
而後咱們編寫測試的controller,以下:併發
咱們使用@RestController註解,因此它返回的是Json格式的結果。而後在方法上使用了@Cacheable註解,這是咱們今天的主角。測試
還有其餘的關鍵字,在這裏沒有列出來,好比:spa
咱們啓動項目,並在瀏覽器第一次訪問http://localhost:8080/cache/test?name=allen,結果響應很慢,過了5秒後,頁面顯示結果:線程
咱們在看一下後臺日誌:
打印語句打印出來了,說明第一次訪問時,是執行了方法的。咱們再在瀏覽器請求相同的地址,結果返回了相同的結果,並且後臺沒有打印出日誌,和上面兩張圖如出一轍。說明此次請求走了緩存,方法並無執行。
怎麼樣?@Cacheable很好用吧,你們趕快動手,在項目中實踐一下吧,有問題評論區留言哦
原文出處:https://www.cnblogs.com/boboooo/p/11248145.html