本文,講解 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
(完)
更多精彩文章,盡在「服務端思維」微信公眾號!