依赖注入失败
创建自定义RedisTemplate后,再service层注入该bean时出现问题
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.data.redis.core.RedisTemplate<?, ?>' available: expected single matching bean but found 3: getRedisTemplate,redisTemplate,stringRedisTemplate
出现原因:
spring容器中存在多个相同类型的bean,依赖出入时未指定相应的名称,导致容器无法判断注入哪个bean,抛出异常:NoUniqueBeanDefinitionException
解决方案:
-
通过@Resource注解注入
-
在config类指定bean的名字
@Bean(name = "myRedisTemplate") public RedisTemplate<String, Object> getRedisTemplate(RedisConnectionFactory factory) {
-
在service层指定注入bean名字
@Resource(name = "myRedisTemplate") private RedisTemplate template;
-
-
通过@Autowired注解注入
@Autowired @Qualifier("myRedisTemplate") private RedisTemplate template;