快取概述
快取模組是以EhCache作為預設JVM進程內快取服務,透過整合外部Redis服務實現多層快取(MultiLevel)的輕量級快取框架,並與YMP框架深度整合(支援針對類別方法的快取,可以根據方法參數值進行快取),靈活的配置、易於使用和擴充;
Maven套件依賴
<dependency> <groupId>net.ymate.platform</groupId> <artifactId>ymate-platform-cache</artifactId> <version>2.0-SNAPSHOT</version> </dependency>
註:
- 在專案的pom.xml中加入上述配置,該模組已經預設引入核心包依賴,無需重複配置。
若需要啟用redis作為快取服務,請新增下列相依性配置:
<dependency> <groupId>net.ymate.platform</groupId> <artifactId>ymate-platform-persistence-redis</artifactId> <version>2.0-SNAPSHOT</version> </dependency>
基礎介面概念
開發者可以根據以下介面完成對快取模組的自訂擴充實作;
快取服務提供者(ICacheProvider )介面:
- DefaultCacheProvider - 基於EhCache快取服務的預設快取服務提供者介面實作類別;
- RedisCacheProvider - 基於Redis資料庫的快取服務提供者介面實作類別;
- MultievelCacheProvider - 融合EhCache和Redis兩者的快取服務提供者介面實作類,透過MultilevelKey決定快取物件的取得方式;
快取Key產生器( IKeyGenerator)介面:
- DefaultKeyGenerator - 根據提供的類別方法和參數物件產生快取Key,預設是將方法和參數物件進行序列化後取其MD5值;
#序列化服務(ISerializer)介面:
- DefaultSerializer - 預設序列化服務採用JDK自帶的物件序列化技術實作;
#快取事件監聽(ICacheEventListener)介面:用於監聽被快取物件改變時的事件處理,需開發者實作介面;
快取作用域處理器(ICacheScopeProcessor)介面:用於處理@Cacheable註解的Scope參數設定為非DEFAULT作用域的快取對象,需開發者實作介面;