最近在学习Redis的时候,入门的时候看了个demo
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory){
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
}
很是奇怪,这个connectionFactory从哪里来的?
于是乎,我发现了RedisAutoConfiguration这个类,但是答案不在这里,通过继续深入到了
LettuceConnectionConfiguration这个配置类中去,
@Bean
@ConditionalOnMissingBean(RedisConnectionFactory.class)
public LettuceConnectionFactory redisConnectionFactory(ClientResources clientResources)
throws UnknownHostException {
LettuceClientConfiguration clientConfig = getLettuceClientConfiguration(clientResources,
this.properties.getLettuce().getPool());
return createLettuceConnectionFactory(clientConfig);
}
这下问题解决了,在这里已经对connctionFactory进行了转配,所以demo中传参的时候,spring就会将这个bean注入。
通过debug,也可以发现,demo中的那个连接工厂就是
LettuceConnectionFactory的实例。