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
相关推荐
Asize13 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
java小白小13 小时前
SpringBoot(09):缓存实战——穿透、雪崩、击穿的解决方案
后端
java小白小13 小时前
SpringBoot(08):Redis 集成——5 分钟给你的项目加上缓存
后端
LiuMingXin13 小时前
意图与代码之间:AI编程范式全景解读
前端·后端·面试
用户342323237631714 小时前
边缘计算与云边协同——当采集不再只是“上传“
后端
壹方秘境14 小时前
ApiCatcher支持抓包HTTP传输大文件的实现原理分享
前端·后端·客户端
神奇小汤圆14 小时前
2026最新·最全·最实用|Java岗面试真题(已收录GitHub)
后端
神奇小汤圆14 小时前
面试官当场让我手写Java线程安全工具类,我写完直接拿到了35K offer
后端
久美子15 小时前
Qoder 使用指南:从配置到落地
后端
tyung15 小时前
Go 手写 Wait-Free MPSC 无界队列:SwapPointer 实现多生产者无锁入队
后端·go