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

基础Spring Boot应用所有端点均返回404/白标错误求助

Spring Boot 所有端点返回404的排查方案

核心排查方向及解决办法

  • 包扫描范围问题
    你手动添加的@ComponentScan、@EnableJpaRepositories、@EntityScan使用了"com.employee.*"通配符,Spring中该写法仅匹配com.employee下的直接子包,如果控制器所在包是多层嵌套(比如com.employee.controller.v1),可能无法被扫描到。另外@SpringBootApplication本身已经默认扫描主类所在包及其所有子包,手动添加扫描注解反而可能覆盖默认规则,导致扫描范围异常。
    解决:移除手动添加的三个扫描注解,仅保留@SpringBootApplication;如果必须指定扫描范围,将包路径改为"com.employee"(会递归扫描所有子包)。

  • 确认控制器类的包位置
    检查EmployeeController所在的包是否属于com.employee及其子包,若控制器在外部包中,即使配置了扫描规则也无法被Spring识别。

  • 查看启动日志的映射注册信息
    启动应用时,Spring会在日志中输出所有成功注册的请求映射(格式类似Mapped "{[/employees/healthcheck],methods=[GET]}")。如果没有此类日志,说明控制器未被扫描加载。可临时将日志级别调整为DEBUG,便于排查扫描过程。

  • 排查请求拦截配置
    检查项目中是否存在自定义的WebMvcConfigurer、过滤器或拦截器,是否存在错误拦截或路由规则,导致请求无法到达控制器。

调整后的主类代码示例

@SpringBootApplication
public class EmployeeApplication {

    public static void main(String[] args) {
        SpringApplication.run(EmployeeApplication.class, args);
    }
}

或者需指定扫描范围时:

@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.employee")
@ComponentScan(basePackages = "com.employee")
@EntityScan(basePackages = "com.employee")   
public class EmployeeApplication {

    public static void main(String[] args) {
        SpringApplication.run(EmployeeApplication.class, args);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:35:22