Spring Boot 揭祕與實戰(二) 資料快取篇 - Guava Cache

樑桂釗發表於2017-01-05

本文,講解 Spring Boot 如何整合 Guava Cache,實現快取。

部落格地址:blog.720ui.com/

在閱讀「Spring Boot 揭祕與實戰(二) 資料快取篇 - 快速入門」後,對 Spring Boot 整合快取機制有一定了解後,對 Spring Boot 整合快取機制有一定了解後,我們來了解下 Guava Cache 的使用。

Guava Cache 整合

Guava 包含了若干被 Google 的 Java 專案廣泛依賴的核心庫,例如:集合 [collections] 、快取 [caching] 、原生型別支援 [primitives support] 、併發庫 [concurrency libraries] 、通用註解 [common annotations] 、字串處理 [string processing] 、I/O 等等。

題外話,個人對 Guava 的 集合 [collections] 、快取 [caching] 十分鐘愛。

Spring Boot 對 Guava 的快取機制也做了很好的支援。

在 Spring Boot 中整合 Guava Cache 非常容易,只需要在 pom.xml 中增加Guava 依賴即可。

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>19.0</version>
</dependency>複製程式碼

其實,底層根據自動配置機制實現的。具體實現原理,如果有興趣的話,可以參考之前的文章「Spring Boot 揭祕與實戰 原始碼分析 - 開箱即用,內藏玄機」 和 「Spring Boot 揭祕與實戰 原始碼分析 - 工作原理剖析」。

如果想對Guava Cache 更深入的瞭解,可以參考 ifeve.com/google-guav…

執行起來,控制檯列印的日誌資訊,說明已經是GuavaCacheManager例項,說明GuavaCache 開啟成功了。

Bean 'cacheManager' of type [class org.springframework.cache.guava.GuavaCacheManager]複製程式碼

個性化配置

如果想自定義引數,例如存活時間,快取最大數目等。我們可以通過 Java Config 的方式,進行配置。

下面案例,我配置存活時間為 10 秒,快取最大數目為 1000 個。

@Configuration
@EnableCaching
public class GuavaCacheConfig { 
    @Bean
    public CacheManager cacheManager() {
        GuavaCacheManager cacheManager = new GuavaCacheManager();
        cacheManager.setCacheBuilder(
            CacheBuilder.newBuilder().
            expireAfterWrite(10, TimeUnit.SECONDS).
            maximumSize(1000));
        return cacheManager;
    }
}複製程式碼

原始碼

相關示例完整程式碼: springboot-action

(完)

更多精彩文章,盡在「服務端思維」微信公眾號!

Spring Boot 揭祕與實戰(二) 資料快取篇 - Guava Cache

相關文章