Subversion Repositories SmartDukaan

Rev

Rev 30206 | Rev 30213 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
22009 ashik.ali 1
package com.spice.profitmandi.dao.config;
2
 
30208 amit.gupta 3
import com.fasterxml.jackson.databind.DeserializationFeature;
4
import com.fasterxml.jackson.databind.ObjectMapper;
22009 ashik.ali 5
import org.springframework.cache.CacheManager;
6
import org.springframework.cache.annotation.CachingConfigurerSupport;
7
import org.springframework.cache.annotation.EnableCaching;
8
import org.springframework.context.annotation.Bean;
9
import org.springframework.context.annotation.Configuration;
30206 amit.gupta 10
import org.springframework.data.redis.cache.RedisCacheConfiguration;
11
import org.springframework.data.redis.cache.RedisCacheManager;
12
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
13
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
14
import org.springframework.data.redis.serializer.RedisSerializationContext;
22009 ashik.ali 15
 
30206 amit.gupta 16
import java.time.Duration;
22009 ashik.ali 17
 
18
@Configuration
19
@EnableCaching
23716 amit.gupta 20
public class CacheConfig extends CachingConfigurerSupport {
21
 
22009 ashik.ali 22
	@Bean
30206 amit.gupta 23
	JedisConnectionFactory jedisConnectionFactory() {
24
		return new JedisConnectionFactory();
25
	}
26
 
27
	@Bean
28
	public RedisCacheConfiguration cacheConfiguration() {
30208 amit.gupta 29
		ObjectMapper objectMapper = new ObjectMapper().enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
30206 amit.gupta 30
		return RedisCacheConfiguration.defaultCacheConfig()
31
				.entryTtl(Duration.ofMinutes(120))
32
				.disableCachingNullValues()
30208 amit.gupta 33
				.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer(objectMapper)));
30206 amit.gupta 34
	}
35
 
36
	@Bean
22009 ashik.ali 37
	public CacheManager cacheManager() {
30206 amit.gupta 38
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
39
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(5)))
40
				.build();
22009 ashik.ali 41
	}
23716 amit.gupta 42
 
30206 amit.gupta 43
 
22009 ashik.ali 44
	@Bean
45
	public CacheManager timeoutCacheManager() {
30206 amit.gupta 46
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
47
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(5)))
48
				.build();
22009 ashik.ali 49
	}
30206 amit.gupta 50
 
29854 amit.gupta 51
	@Bean
52
	public CacheManager timeout15CacheManager() {
30206 amit.gupta 53
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
54
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(15)))
55
				.build();
29854 amit.gupta 56
	}
23716 amit.gupta 57
 
23405 amit.gupta 58
	@Bean
59
	public CacheManager oneDayCacheManager() {
30206 amit.gupta 60
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
61
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofHours(8)))
62
				.build();
23405 amit.gupta 63
	}
22009 ashik.ali 64
 
30206 amit.gupta 65
 
22708 amit.gupta 66
	@Bean
67
	public CacheManager twoMintimeoutCacheManager() {
30206 amit.gupta 68
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
69
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(2)))
70
				.build();
22708 amit.gupta 71
	}
72
 
23405 amit.gupta 73
	@Bean
74
	public CacheManager thirtyMinsTimeOutCacheManager() {
30206 amit.gupta 75
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
76
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(30)))
77
				.build();
23405 amit.gupta 78
	}
79
 
22009 ashik.ali 80
}