From 48bc9f07e5edd276439b1f26de05fb2a966405b6 Mon Sep 17 00:00:00 2001 From: Paul Kim Date: Sun, 25 Dec 2016 22:42:15 -0800 Subject: [PATCH] restore vets cache --- .../samples/petclinic/system/CacheConfig.java | 26 +++++++++++++++++++ .../samples/petclinic/vet/VetRepository.java | 5 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/samples/petclinic/system/CacheConfig.java b/src/main/java/org/springframework/samples/petclinic/system/CacheConfig.java index 8798bfb50..b3ea807da 100755 --- a/src/main/java/org/springframework/samples/petclinic/system/CacheConfig.java +++ b/src/main/java/org/springframework/samples/petclinic/system/CacheConfig.java @@ -1,6 +1,18 @@ package org.springframework.samples.petclinic.system; +import java.util.concurrent.TimeUnit; + +import org.ehcache.config.CacheConfiguration; +import org.ehcache.config.builders.CacheConfigurationBuilder; +import org.ehcache.config.builders.ResourcePoolsBuilder; +import org.ehcache.config.units.EntryUnit; +import org.ehcache.expiry.Duration; +import org.ehcache.expiry.Expirations; +import org.ehcache.jsr107.Eh107Configuration; + +import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer; import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @@ -11,4 +23,18 @@ import org.springframework.context.annotation.Profile; @EnableCaching @Profile("production") class CacheConfig { + + @Bean + public JCacheManagerCustomizer cacheManagerCustomizer() { + return cacheManager -> { + CacheConfiguration config = CacheConfigurationBuilder + .newCacheConfigurationBuilder(Object.class, Object.class, + ResourcePoolsBuilder.newResourcePoolsBuilder() + .heap(100, EntryUnit.ENTRIES)) + .withExpiry(Expirations.timeToLiveExpiration(Duration.of(60, TimeUnit.SECONDS))) + .build(); + cacheManager.createCache("vets", Eh107Configuration.fromEhcacheCacheConfiguration(config)); + }; + } + } diff --git a/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java b/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java index 20863ce76..4f3a5128d 100644 --- a/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/vet/VetRepository.java @@ -17,7 +17,8 @@ package org.springframework.samples.petclinic.vet; import java.util.Collection; -import org.springframework.cache.annotation.Cacheable; +import javax.cache.annotation.CacheResult; + import org.springframework.dao.DataAccessException; import org.springframework.data.repository.Repository; import org.springframework.transaction.annotation.Transactional; @@ -39,7 +40,7 @@ public interface VetRepository extends Repository { * @return a Collection of Vets */ @Transactional(readOnly = true) - @Cacheable("vets") + @CacheResult(cacheName = "vets") Collection findAll() throws DataAccessException;