SpringBoot RedisTemplate( No qualifying bean)

本文解决在SpringBoot中因自动配置导致的特定泛型类型的RedisTemplate注入失败的问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 No qualifying bean of type 'org.springframework.data.redis.core.RedisTemplate<java.lang.String, java.lang.Object>' available: expected at least 1 bean which qualifies as autowire candidate.

    在使用SpringBoot时,注入redisTemplate<T, T>类型,会报错(前提是如果这的泛型T不是Object或者String类型)。

在Spring自动配置时注入了两个redisTemplate,分别是StringRedisTemplate和RedisTemplate<Object, Object>.所以当使用的泛型类型不是自动注入的这两个类型时需要自定义redisTemplate bean或者改成上述两个已注入的。

下面是RedisAutoConfiguration自动注入的两个RedisTemplate bean。

@Configuration
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
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;
	}

	@Bean
	@ConditionalOnMissingBean
	public StringRedisTemplate stringRedisTemplate(
			RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
		StringRedisTemplate template = new StringRedisTemplate();
		template.setConnectionFactory(redisConnectionFactory);
		return template;
	}

}

    

引用提到的错误信息"No qualifying bean of type 'xxx' available"通常出现在使用SpringContextHloder#getBean()方法时,说明在Spring容器中找不到对应类型的bean。这可能是由于配置问题导致的。引用指出,你的项目使用的是mybatis-spring-boot-starter的1.0版本。而引用提到,如果你非要使用1.0.0版本的mybatis-spring-boot-starter,那么你的spring-boot-starter-parent必须调低版本。 要解决这个问题,你可以尝试以下步骤: 1. 确认你的Spring配置文件中是否正确配置了相关的bean。可以检查bean的定义和注入方式。 2. 检查你的pom.xml文件,确认引入的mybatis-spring-boot-starter版本与其他依赖项的版本兼容。如果版本不兼容,可能会导致bean无法注入。 3. 如果你确实需要使用1.0.0版本的mybatis-spring-boot-starter,那么根据引用所说,你需要将spring-boot-starter-parent的版本调低。在pom.xml文件中修改parent标签下的版本号为一个低于1.5.19.RELEASE的版本。 4. 如果上述步骤仍然无法解决问题,可能是其他配置或依赖项的问题。你可以尝试查看日志文件或调试代码,以找出更具体的错误信息。 总结来说,当出现"no qualifying bean of type"的错误时,通常是由于Spring容器无法找到对应类型的bean导致的。你可以检查配置、版本兼容性和其他相关问题来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用SpringBoot获取bean时出错:No qualifying....](https://blog.csdn.net/QINGZHID/article/details/117369243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot整合mybatis报 NO qualifying bean of type 'com.jvtd.mapper.auth.AdminUserMapper' 把我坑了1...](https://blog.csdn.net/qq_17231297/article/details/82219502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值