Spring Boot 自动注入失败的原因

问题

shell 复制代码
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.sveinn.chatbotdomain.zsxq.service.ZsxqApi' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}

解决过程

看到这个错误我们第一时间想到的就是应该是没有在service加注解(@Controller、@Service、@Repository、 @Component 中的其中一个)。但是呢我看了一下我的service是加了注解的。所以呢我们可以排除这种可能。

还有一个可能出现问题的就是启动类的位置错误,SpringBoot应用启动时,默认会自动扫描与启动类在同个包以及子包下的Bean。

检查了一下自己的启动类路径,发现了报错的原因是项目中启动类的位置错了。

从我的项目路径我们可以知道,项目中启动类所在的路径是com.sveinn.chatbotinterfaces,service所在的路径为com.sveinn.chatbotdomain.zsxq.service。启动类不在要找的这个类的上层或者是平级,因此启动类找不到service所以会报这个错误。

总结

自动注入失败的两种可能:NoSuchBeanDefinitionException: No qualifying bean of type 'com.aaa.xxx'available: expected at least 1 bean which qualifies as autowire candidate. available出现的原因可能有两种。

  • 没有加注解(@Controller、@Service、@Repository、 @Component 中的其中一个)。
  • Application类 (启动类)的路径错误,SpringBoot应用启动时,默认会自动扫描与启动类在同个包以及子包下的Bean。
相关推荐
苍何3 小时前
用 WorkBuddy + LibTV 做 AI 视频,干活有点猛啊!(附教程)
后端
苍何3 小时前
我的新书冲上京东热榜第一了!
后端
captain3764 小时前
MyBatis Plus(1)
java·服务器·mybatis
香蕉大香蕉(06敬畏市场)4 小时前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
thefool1122664 小时前
HTTPS协议
java
acd120094 小时前
Nginx 反向代理的缓冲区坑:后端响应大时接口偶发 502
java·运维·nginx
装不满的克莱因瓶4 小时前
支付订单成功异步MQ权益发放设计和开发
java·架构·系统架构·rabbitmq·硬件架构
掘金者阿豪4 小时前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
前端·后端
zhoujungis4 小时前
限流算法实测:固定窗口 2 倍溢出、令牌桶突刺 | 尘世栈帧
后端
高冷小鱼殿下5 小时前
内部类Lambda与枚举
java·开发语言