解决IDEA报错Could not autowire. There is more than one bean of 'xxx' type

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决IDEA报错Could not autowire. There is more than one bean of 'xxx' type相关的知识,希望对你有一定的参考价值。

参考技术A 更新项目之后IDEA突然出现了这样的报错信息。显示 Could not autowire. There is more than one bean of 'xxx' type 。这个错误的意思是xxx类型有不止一个bean,但是这个错误不会影响项目运行,相当于一个warning。

2.使用@Primary

IDEA报错Could not autowire. No beans of 'XXXXX' type found

参考技术A

  在IDEA中使用Spring的注解@Autowired,程序能正常运行,但是idea标红报错 Could not autowire. No beans of \'UserMapper\' type found 。

   程序能正常运行 ,说明没有错误,bean真实存在。

  网上有另一个解决办法,在Application类添加 @EnableAutoConfiguration 注解, @Autowired 确实不报错了,但是提示 @EnableAutoConfiguration 注解重复,因为 @SpringBootApplication 中包含 @EnableAutoConfiguration 。

  有多个微服务A、B、C、D...等等,都要用到redis,使用相同的配置文件,但是连接不同的redis服务,因此把RedisTemplate的Bean放到common模块,供其他所有模块使用,在每个模块中定义自己的LettuceConnectionFactory。如下所示:

  导入LettuceConnectionFactory时使用@Resource就不会报错。

  IDEA可以理解Spring的上下文,也就是能识别Spring的注解 @Autowired ,但是 @Mapper 和 @MapperScan 注解是是Mybatis的,IDEA理解不了。
  IDEA拿到了Spring的注解@Autowired,就要去找@Autowired使用的bean;但是理解不了MyBatis的注解也是用来生成bean的,就找不到Mapper生成的Bean。
  common模块中确实不存在LettuceConnectionFactory的Bean,所以IDEA找不到。
  为什么换成@Resource就可以了呢?因为@Resource也不是Spring的注解,IDEA理解不了这是要找bean,就不会去找了。

以上是关于解决IDEA报错Could not autowire. There is more than one bean of 'xxx' type的主要内容,如果未能解决你的问题,请参考以下文章

IDEA报错Could not autowire. No beans of 'XXXXX' type found

解决IDEA报错Could not autowire. There is more than one bean of 'xxx' type

解决IDEA报错Could not autowire. There is more than one bean of 'xxx' type

spring boot+mybatis注解使用方式(无xml配置)设置自动驼峰明明转换(),IDEA中xxDao报错could not autowire的解决方法

IntelliJ idea 报错:Could not autowire,no beans of "XXX" type found

IDEA出现Could not autowire. No beans of 'xxx' type found.解决