You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot添加@ComponentScan后Controller仍找不到Service Bean问题求助

问题根因与修复步骤

导致Bean找不到的核心原因及修复方式如下:

  1. Profile未激活问题
    你的FriendService实现类上加了@Profile("devel")注解,这意味着只有当前Spring激活的profile为devel时,这个类才会被注册到Spring容器中。如果你的项目没有配置激活devel profile,这个Bean默认不会被加载。
    修复方式二选一:
  • 在application.properties/yml中添加配置激活devel profile:spring.profiles.active=devel
  • 临时去掉@Profile("devel")注解,先验证功能正常后再按环境需求配置
  1. 循环依赖问题
    你在FriendService类内部又注入了FriendsServiceInterface类型的Bean,而FriendService本身就是这个接口的唯一实现,会触发循环依赖,直接删掉这行注入代码即可:
// 直接删除该行无效注入
@Autowired
private FriendsServiceInterface peopleserviceinterface;
  1. 冗余无效注解清理
  • 接口FriendsServiceInterface上的@Component注解完全无效,Spring不会为接口实例化Bean,直接删掉即可
  • FriendService上的@Configuration、@Component属于冗余注解,已经加了@Service就可以被Spring扫描识别,这两个注解直接删掉,避免逻辑冲突
  • 额外建议:当前你把Cors配置的Bean放在Service类中不符合分层规范,建议单独抽一个CorsConfig配置类,加@Configuration注解后把corsConfigurer这个Bean挪过去,不要和业务Service混写
  1. 包扫描配置优化
    你在Controller、配置类上分散加了多个@ComponentScan,建议统一将扫描配置放到启动类上:如果你的启动类放在com.sample.lombpackdemo根包下,只需要保留启动类的@SpringBootApplication注解即可自动扫描所有子包,不需要额外加零散的@ComponentScan;如果启动类不在根包,修改启动类注解为:
@SpringBootApplication(scanBasePackages = "com.sample.lombpackdemo")

按上述步骤修改后重启项目即可解决Bean找不到的问题。

内容的提问来源于stack exchange,提问作者Pisces1719

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:48:01