package com.common.redis.config; import com.common.redis.util.RedisUtil; import com.common.redis.serializer.KryoRedisSerializer; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * @author xiaobzhou * date 2019-07-10 19:00 * {@link RedisAutoConfiguration} */ @Configuration @ConditionalOnProperty(value = "spring.redis.host") public class CommonRedisConfig { /** * 设置redis配置项 * * @param connectionFactory * @return */ @Bean @ConditionalOnMissingBean(name = "template") public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate<>(); RedisSerializer valueSerializer = new KryoRedisSerializer(Object.class); template.setConnectionFactory(connectionFactory); template.setKeySerializer(new StringRedisSerializer()); template.setHashKeySerializer(new StringRedisSerializer()); template.setHashValueSerializer(valueSerializer); template.setValueSerializer(valueSerializer); template.afterPropertiesSet(); return template; } /** * 获取redis 工具类 * * @param template * @return */ @Bean @ConditionalOnMissingBean public RedisUtil redisUtil(RedisTemplate template) { return new RedisUtil(template); } }