在项目中引入 Redis 依赖后,SpringBoot 提供的 RedisAutoConfiguration 自动配置会生效。打开 RedisAutoConfiguration 类,查看内部源码中关于 RedisTemplate 的定义方式
“`java
public class RedisAutoConfiguration {
@Bean
@ConditionalOnMissingBean(
name = {“redisTemplate”}
)
public RedisTemplate<Object, Object>redisTemplate(RedisConnectionFactory
redisConnectionFactory) throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
…
}
“`
从上述 RedisAutoConfiguration 核心源码中可以看出,在 Redis 自动配置类中,通过 Redis 连接工厂 RedisConnectionFactory 初始化了一个 RedisTemplate;该类上方添加了 @ConditionalOnMissingBean 注解(顾名思义,当某个 Bean 不存在时生效),用来表明如果开发者自定义了一个名为 redisTemplate 的 Bean,则该默认初始化的 RedisTemplate 不会生效。
如果想要使用自定义序列化方式的 RedisTemplate 进行数据缓存操作,可以参考上述核心代码创建一个名为 redisTemplate 的 Bean 组件,并在该组件中设置对应的序列化方式即可
刚学了拉勾教育的《Java 工程师高薪训练营》,看到刚学到的点就回答了。希望拉勾能给我推到想去的公司,目标:字节!!