先看Springboot1.5的配置方法
@Configuration
public class MyRedisConfig {
@Bean
public RedisTemplate<Object, Object> RedisTemplate(
RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
template.setConnectionFactory(redisConnectionFactory);
//采用Jackson2JsonRedisSerializer序列化机制
Jackson2JsonRedisSerializer<Object> ser = new Jackson2JsonRedisSerializer<Object>(Employee.class);
template.setDefaultSerializer(ser);
return template;
}
@Primary //将某个缓存管理器作为默认的
@Bean
public RedisCacheManager CacheManager(RedisTemplate<Object, Object> empRedisTemplate){
//通过注入RedisTemplate得到cacheManager
RedisCacheManager cacheManager = new RedisCacheManager(RedisTemplate);
cacheManager.setUsePrefix(true);
return cacheManager;
}
}
Springboot2.0版本以上的配置方式
@Configuration
public class MyRedisConfig {
@Bean
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
//初始化一个RedisCacheWriter输出流
RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);
//采用Jackson2JsonRedisSerializer序列化机制
Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Employee.class);
//创建一个RedisSerializationContext.SerializationPair给定的适配器pair
RedisSerializationContext.SerializationPair<Object> pair = RedisSerializationContext.SerializationPair.fromSerializer(serializer);
//创建CacheConfig
RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig().serializeValuesWith(pair);
return new RedisCacheManager(redisCacheWriter, defaultCacheConfig);
}
}