最近在学习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的实例。
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐