diff --git a/pom.xml b/pom.xml
index 8629b0399..31b40bfe5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,6 +79,16 @@
spring-boot-starter-test
test
+
+
+
+ javax.cache
+ cache-api
+
+
+ org.ehcache
+ ehcache
+
diff --git a/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java b/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
new file mode 100644
index 000000000..512254b2d
--- /dev/null
+++ b/src/main/java/org/springframework/samples/petclinic/config/CacheConfig.java
@@ -0,0 +1,42 @@
+package org.springframework.samples.petclinic.config;
+
+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;
+
+import javax.cache.CacheManager;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Cache could be disable in unit test.
+ */
+@Configuration
+@EnableCaching
+public class CacheConfig {
+
+ @Bean
+ public JCacheManagerCustomizer cacheManagerCustomizer() {
+ return new JCacheManagerCustomizer() {
+ @Override
+ public void customize(CacheManager cacheManager) {
+ CacheConfiguration