1. 程式人生 > >SpringBoot-快取技術1

SpringBoot-快取技術1

在實際開發工作中,如果頻繁查詢資料庫, 是不是會給資料庫伺服器帶來很大的壓力呢?

因此,我們需要對查詢出來的資料進行快取, 這樣客戶端只要從資料庫查詢了一次資料,這批資料就會放入快取中,以後再次查詢時可以從快取中讀取,這樣是不是會快很多呢?

SpringBoot支援很多種快取方式:redis、guava、ehcahe、jcache等等。

下面我們使用SpringBoot最簡單的快取方式來對SpringBoot的快取技術做一個簡單的介紹(SpringBoot的版本是1.4.0.RELEASE)。

SpringBoot預設的快取方式就是在記憶體中通過ConCurrentMap結構來進行資料的快取。

1.      首先,新建一個SpringBoot工程,結構如下

2.      編輯POM.XML,新增相關依賴包

3.      編輯application.properties檔案,對資料庫連線引數進行配置​

4.      編寫實體類Person.java(此處省略了getter和setter方法)​

5.      編寫資料庫訪問介面PersonRepository.java, 此處用了jap框架, 繼承JpaRepository介面即可實現基本的資料庫增刪改查操作.​

6.      編寫業務類介面PersonService.java,宣告一些業務方法​

7.      編寫業務介面實現類PersonServiceImpl.java​

注:   @CachePut 快取新增的或者更新的資料到快取中其中快取名稱為person,資料的keyperson.id

          @CacheEvict:  從快取person中刪除key為id的快取資料

          @Cacheable: 讀取快取為person中key為id的快取資料。

@CachePut@CacheEvict@Cacheable若未指定key, 則方法引數作為key儲存到快取中。

8.      編寫訪問控制器類PersonController.java

9.      編寫程式入口

 注: 此處一定要加上@EnableCaching來開啟SpringBoot的快取支援

10.      測試訪問:

       A.我們先儲存一組資料到快取中

            此時頁面輸出如下:​

           控制檯輸出如下:

        B.此時再次從頁面上訪問id=21的資料, 控制檯不會再列印Hibernate的查詢語句以及“為id、key為:21資料做了快取”。這表明程式未呼叫該方法,頁面資料直接從快取中取得。