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<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
|
|
RedisTemplate<String, Object> 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<String, Object> template) {
|
return new RedisUtil(template);
|
}
|
|
|
}
|