net.oschina.j2cache.autoconfigure.J2CacheSpringRedisAutoConfiguration Maven / Gradle / Ivy
package net.oschina.j2cache.autoconfigure;
import java.io.Serializable;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
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.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import net.oschina.j2cache.cache.support.util.J2CacheSerializer;
/**
* 对spring redis支持的配置入口
* @author zhangsaizz
*
*/
@Configuration
@AutoConfigureAfter({RedisAutoConfiguration.class})
@AutoConfigureBefore({J2CacheAutoConfiguration.class})
public class J2CacheSpringRedisAutoConfiguration {
@Bean("j2CacheRedisTemplate")
@ConditionalOnBean(RedisConnectionFactory.class)
public RedisTemplate j2CacheRedisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate template = new RedisTemplate();
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setDefaultSerializer(new J2CacheSerializer());
template.setConnectionFactory(connectionFactory);
return template;
}
@Bean("j2CacheRedisMessageListenerContainer")
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory){
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}