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。
相关推荐
❀͜͡傀儡师4 分钟前
Spring AI 集成 TypeSafe:用判断模型处理工单分流与链路决策
java·人工智能·spring
bro_Java6667 分钟前
《栈与队列:数据结构的“双生花”》
java·数据结构·编辑器
花开路口9 分钟前
线程安全完全指南:从 Java 到 Kotlin,一文吃透并发编程
java·kotlin
她说..15 分钟前
IntelliJ IDEA 快捷键速查表(Mac 版)
java·macos·intellij-idea
EatFan24 分钟前
JunoYi 框架实践:Spring Boot 项目为什么拆成 framework、module、server 三层?
java·spring boot·后端·framework·module·模块化·junoyi
汉堡大王952729 分钟前
一张图三句需求,我用 Trae Work 做了一块能看日出日落和月相的天文机械表
前端·后端·github
mudtools33 分钟前
在.NET现有系统中快速集成飞书任务分配能力
后端·c#·.net
Wang's Blog34 分钟前
Java 项目实战: 外卖平台优化-从库Slave配置与主从复制验证
java·开发语言
知守观34 分钟前
ThreadLocal + 异步线程导致用户数据串号:一次跨请求数据泄漏的完整复盘
后端
前端冒菜师36 分钟前
我为什么做了 Iris,又为什么停下了它
后端·ai编程