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
相关推荐
ElevenPlus7 分钟前
【 AI智能体时代:一名Javaer的技术随想录】MCP服务部署架构
后端
下次再写13 分钟前
Java互联网大厂面试技术问答实战:涵盖Java SE、Spring Boot、微服务及多场景应用
java·数据库·缓存·面试·springboot·microservices·技术问答
公众号-老炮说Java15 分钟前
IDEA 2026.1 + Claude Code = 降维打击
java·ide·intellij-idea
千寻girling21 分钟前
RabbitMQ 详细教程(38K字数)
java·后端·面试
止语Lab29 分钟前
Go vs Java GC:同一场延迟战争的两条路
java·开发语言·golang
Rust研习社29 分钟前
Rust 多线程从入门到实战
开发语言·后端·rust
卷毛的技术笔记36 分钟前
从“拆东墙补西墙”到“最终一致”:分布式事务在Spring Boot/Cloud中的破局之道
java·spring boot·分布式·后端·spring cloud·面试·rocketmq
ERBU DISH42 分钟前
修改表字段属性,SQL总结
java·数据库·sql
袋鱼不重1 小时前
Hermes Agent 直连飞书机器人
前端·后端·ai编程
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【26】Skills 生命周期深度解析
java·人工智能·spring