本章内容就是为了搞懂springboot是如何帮我们配置redistemplate的

上一篇我们知道在springboot启动类上我们添加注解
@SpringBootApplication 后springboot扫描了类路径下的
META-INF/spring.factories下的 org.springframework.boot.autoconfigure.EnableAutoConfiguration 所对应的值被加载到容器中,其中每一个bean就是不同的配置类.其中就有一个
RedisAutoConfiguration被加载到容器中.今天来看看这个类的作用

在这里插入图片描述
@Configuration 表明这是一个配置类
@ConditionalOnClass 表明类路径下有RedisOperations这个类的时候该类才会被加载到容器中
@EnableConfigurationProperties 表示让RedisProperties配置类生效
最后又导入了两个类LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class

我们先来看第一个类 LettuceConnectionConfiguration.class
在这里插入图片描述
第二个类 JedisConnectionConfiguration.class
在这里插入图片描述

spring-boot-redis 默认引入了lettuce-core,其中就引入了 redisclient.所以导致默认加载了lettuce的redis工厂

在这里插入图片描述
在这里插入图片描述
我们可以看到在redis自动配置类上生成redistemplate的时候就是拿到工厂生成template,而这个工厂就是lettuce.

如何使用jedis工厂

很简单,把 lettuce-core 依赖从spring-boot-redis中排除,在引入jedis需要的类即可
在这里插入图片描述
在这里插入图片描述

网上很多切换redis源的方法是自己新建一个redis的工厂或者自己新建template,这就是属于没有理解到springboot精髓

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐