参考(12条消息) spring-boot整合redis,自定义序列化方式,RedisUtil工具类_燕某的博客-CSDN博客
在RedisTemplate.java源码中我们可以看到,我们可以看到这样一段代码
if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(
classLoader != null ? classLoader : this.getClass().getClassLoader());
}
然后我们发现JdkSerializationRedisSerializer类实现了RedisSerializer接口
选中接口我们按ctrl+H可以看到该接口的实现类
然后按两次shift搜索RedisConfig
然后我们参考上面那个链接自定义配置即可
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")
@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
@ConditionalOnMissingBean
该注解表示,如果存在它修饰的类的bean,则不需要再创建这个bean;
可以给该注解传入参数例如@ConditionOnMissingBean(name = "example"),
这个表示如果name为“example”的bean存在,这该注解修饰的代码块不执行。
@ConditionalOnSingleCandidate表示当指定Bean在容器中只有一个,或者虽然有多个但是指定首选Bean。