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

Spring Boot多模块REST应用调用接口返回404错误排查求助

问题根因及解决方案

1. 核心问题:组件扫描范围配置错误

你的主启动类RestApiApplication上加的@ComponentScan("com.opus.app")指定仅扫描com.opus.app包下的组件,但你的ClientRestController放在com.opus.restApi.implementations包下,完全不在扫描范围内,Spring无法识别到这个Controller,对应的接口自然不存在,请求就会返回404。

修复方案:

修改启动类的组件扫描配置,两种方案二选一:

  • 方案一:如果其他业务模块的组件都放在com.opus父包下,直接修改扫描范围为父包即可覆盖所有模块的组件:
@ComponentScan("com.opus")
  • 方案二:如果仅需要扫描指定包,把restApi包也加入扫描范围:
@ComponentScan(basePackages = {"com.opus.app", "com.opus.restApi"})

如果没有特殊配置需求,也可以直接删除额外加的@ComponentScan注解,@SpringBootApplication默认会扫描启动类所在包(com.opus.restApi)及其子包下的所有组件,刚好覆盖你的Controller所在路径。

2. 次要问题:Spring Boot版本冲突

你父pom中继承的spring-boot-starter-parent版本是2.3.3.RELEASE,但后面所有显式引入的Spring Boot依赖(spring-boot-starter、spring-boot-starter-web等)都单独指定了2.5.6版本,跨大版本混用会导致未知的运行时异常,也可能间接影响接口映射逻辑。

修复方案:

删除所有显式指定的Spring Boot依赖的version属性,统一使用parent定义的版本,或者把parent的版本升级到2.5.6保持一致即可。

验证方式

修复后启动项目,查看控制台启动日志中的RequestMapping映射信息,会出现"/auth/client"的GET接口映射记录,此时访问http://localhost:8080/api/opus/auth/client就能正常返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:45:04