4 Eylül 2019 Çarşamba

Ehcache

Giriş
Ehcache JSR-107 ile uyumlu. CacheManagerBuilder en önemli sınıf. Çünkü tüm ayarları bu sınıfta belirtiyoruz.

Maven
Şu satırı dahil ederiz
<dependency>
  <groupId>org.ehcache</groupId>
  <artifactId>ehcache</artifactId>
  <version>3.8.1</version>
</dependency>
CacheManagerBuilder Sınıfı
Giriş
Şu satırı dahil ederiz.
import org.ehcache.config.builders.CacheManagerBuilder;
build metodu
Şöyle yaparız.
System.getProperties().
  setProperty("java -Dnet.sf.ehcache.use.classic.lru", "true");
CacheManager cacheManager =  CacheManagerBuilder.newCacheManagerBuilder().build();
withCache metodu
Örnek - diskte
Şöyle yaparız
Cache buildPersistenceStorageCache(String cacheName, Class<?> keyType,
Class<?> valueType){
  CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
    .with(CacheManagerBuilder.persistence("C:\\Cacahe\\persistence"))
    .withCache(cacheName, CacheConfigurationBuilder
      .newCacheConfigurationBuilder(keyType, valueType,
         ResourcePoolsBuilder.heap(100).disk(10, MemoryUnit.MB)
      )
    ).build();

  cacheManager.init();
  return cacheManager.getCache(cacheName, keyType, valueType);
}
Örnek  - bellekte
Şöyle  yaparız
Cache buildInMemoryCache(String cacheName, Class<?> keyType, Class<?> valueType){
  CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
    .withCache(cacheName, 
      CacheConfigurationBuilder.newCacheConfigurationBuilder(keyType, 
                                          valueType,
                                          ResourcePoolsBuilder.heap(100))
    ).build();

  cacheManager.init();
  return cacheManager.getCache(cacheName, keyType, valueType);
}
withExpiry metodu
Şöyle yaparız
Cache buildExpiryEnabledInMemoryCache(String cacheName, Class<?> keyType,
Class<?> valueType, int expiryPeriod){
  CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
    .withCache(cacheName,
      CacheConfigurationBuilder.newCacheConfigurationBuilder(keyType, 
        valueType, 
        ResourcePoolsBuilder.heap(100))
    .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(
Duration.ofSeconds(expiryPeriod))))
    .build();

    cacheManager.init();
    return cacheManager.getCache(cacheName, keyType, valueType);
}
CacheManager Sınıfı
Giriş
Şu satırı dahil ederiz.
import org.ehcache.CacheManager;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.expiry.Expirations;
init metodu
Şöyle yaparız.
cacheManager.init();
createCache metodu
Şöyle yaparız.newCacheConfigurationBuilder() metodunda Key tipimizin String olduğunu Value tipimizinde PersonList olduğunu belirtiriz.
Cache<String, PersonList> cacheDataList = 
cacheManager
  .createCache("cacheOfPersonList",
   CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class,
     PersonList.class,
     ResourcePoolsBuilder.heap(10))
  .withExpiry(Expirations.timeToLiveExpiration(org.ehcache.expiry.Duration.of(20,
        TimeUnit.SECONDS))));
Cache Sınıfı
Giriş
Şu satırı dahil ederiz.
import org.ehcache.Cache;
get metodu
Şöyle yaparız.
String CACHE_PERSON = "cache_key_person";
PersonList personList = cacheDataList.get(CACHE_PERSON);
put metodu
Şöyle yaparız.
String CACHE_PERSON = "cache_key_person";
List<Person> personList = ...;
cacheDataList.put(CACHE_PERSON, new PersonList(personList));

Hiç yorum yok:

Yorum Gönder