To configure EhCache to Spring Boot Application
First we have to add the following maven dependency to Application (Note versions will be taken care by spring boot starter (which we have added initial setup))
First we have to add the following maven dependency to Application (Note versions will be taken care by spring boot starter (which we have added initial setup))
Add the following class to application as setuporg.springframework.boot spring-boot-starter-cache javax.cache cache-api org.ehcache ehcache
package com.nagarajuconfig; import java.util.concurrent.TimeUnit; import javax.cache.CacheManager; import javax.cache.Caching; import javax.cache.configuration.FactoryBuilder; import javax.cache.configuration.MutableCacheEntryListenerConfiguration; import javax.cache.configuration.MutableConfiguration; import javax.cache.expiry.CreatedExpiryPolicy; import javax.cache.expiry.Duration; import javax.cache.spi.CachingProvider; import org.springframework.stereotype.Component; @Component public class CacheSetup { public CacheManager cacheManager() { CachingProvider provider = Caching.getCachingProvider(); CacheManager cacheManager = provider.getCacheManager(); cacheManager.createCache("cacheName", getCacheConfiguration()); return cacheManager; } private MutableConfigurationAdd the following to service layer or dao layer ..I have added in the service Layer.
@Override /* @Cacheable(cacheNames = "controllerParamData",key="#controllerId") */ @CacheResult(cacheName = "controllerParamData") public ListNow enable the CachegetParamData(Long controllerId, String type, String sort, Integer count, Long startTime, Long endTime, List paramKey)
package com.nagaraju.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.jcache.JCacheCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * */ @Configuration @EnableCaching public class CacheConfiguration { @Autowired private CacheSetup cacheSetup; @Bean JCacheCacheManager jCacheCacheManager() { return new JCacheCacheManager(cacheSetup.cacheManager()); } }Run application, then will setup the cache automatically.
No comments:
Post a Comment