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

Spring Boot 2.6.6升级后接口404,移除Component Scan遇依赖问题求助

排查Spring Boot 2.6.6接口404问题的关键点
  • 核心根源:控制器未被Spring容器扫描注册
    你移除了Component Scan配置,而Spring Boot默认的组件扫描范围是主应用类(带@SpringBootApplication的类)所在包及其子包。如果你的控制器不在这个范围内,就不会被Spring识别并注册,直接导致接口调用404。

  • 具体排查与修复步骤:

    1. 修正组件扫描范围

      • 要么调整主应用类的位置,让它处于所有需要扫描的包的父包层级;要么显式指定扫描路径,确保覆盖控制器、服务等Bean所在的包:
        @SpringBootApplication(scanBasePackages = {
            "com.your.project.controller", 
            "com.your.project.service",
            "com.your.project.repository"
        })
        public class YourApplication {
            public static void main(String[] args) {
                SpringApplication.run(YourApplication.class, args);
            }
        }
        
      • 也可以用scanBasePackageClasses指定具体类所在的包,更类型安全:
        @SpringBootApplication(scanBasePackageClasses = {UserController.class, UserServiceImpl.class})
        
    2. 验证控制器是否被实例化

      • 启动应用后,在日志里搜索你的控制器类名,查看是否有类似Mapped "{/api/user}" onto public ...的映射日志;或者在控制器的构造方法里添加日志输出,确认是否被Spring实例化:
        @RestController
        @RequestMapping("/api")
        public class UserController {
            public UserController() {
                System.out.println("UserController已初始化");
            }
        
            @GetMapping("/user")
            public String getUserInfo() {
                return "success";
            }
        }
        
      • 如果没有相关日志输出,说明控制器确实未被扫描到。
    3. 检查请求路径是否正确

      • 确认控制器类上的@RequestMapping和方法上的@GetMapping/@PostMapping路径拼接是否准确,比如控制器上是@RequestMapping("/api"),方法是@GetMapping("/info"),完整请求路径应为/api/info,不要漏写或多写斜杠。
    4. 确认Spring MVC自动配置未被禁用

      • 检查application.properties或application.yml中是否存在spring.mvc.enabled=false的配置,该配置会直接禁用Spring MVC的自动配置,导致接口无法映射。
    5. 解决最初的UnsatisfiedDependencyException(避免后续问题)

      • 当初移除Component Scan是治标不治本的做法,这个异常通常是因为某个Bean依赖的对象未被注册,或者存在循环依赖(Spring Boot 2.6+默认禁止循环依赖)。
      • 可以通过给依赖Bean添加@Lazy注解延迟加载,或者调整Bean的依赖结构来解决循环依赖;如果是依赖的Bean未被扫描,正好通过正确的Component Scan配置覆盖其所在包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:15:57