Subversion Repositories SmartDukaan

Rev

Rev 23405 | Rev 24440 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.config;

import java.util.concurrent.TimeUnit;

import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.caffeine.CaffeineCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.github.benmanes.caffeine.cache.Caffeine;

@Configuration
@EnableCaching
public class CacheConfig extends CachingConfigurerSupport {

        @Override
        @Bean
        public CacheManager cacheManager() {
                CaffeineCacheManager cacheManager = new CaffeineCacheManager();
                return cacheManager;
        }

        @Bean
        public CacheManager timeoutCacheManager() {
                CaffeineCacheManager cacheManager = new CaffeineCacheManager();
                Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(5, TimeUnit.MINUTES);
                cacheManager.setCaffeine(caffeine);
                return cacheManager;
        }

        @Bean
        public CacheManager oneDayCacheManager() {
                CaffeineCacheManager cacheManager = new CaffeineCacheManager();
                Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.DAYS);
                cacheManager.setCaffeine(caffeine);
                return cacheManager;
        }

        @Bean
        public CacheManager twoMintimeoutCacheManager() {
                CaffeineCacheManager cacheManager = new CaffeineCacheManager();
                Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(2, TimeUnit.MINUTES);
                cacheManager.setCaffeine(caffeine);
                return cacheManager;
        }

        @Bean
        public CacheManager thirtyMinsTimeOutCacheManager() {
                CaffeineCacheManager cacheManager = new CaffeineCacheManager();
                Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(30, TimeUnit.MINUTES);
                cacheManager.setCaffeine(caffeine);
                return cacheManager;
        }

}