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

Spring Boot控制器异常:访问/hello路由出现404白标错误

问题排查建议

从你提供的代码和日志来看,控制器本身的注解与路由配置没有语法错误,但Spring未成功注册/hello路由,导致访问时出现404白标错误。以下是具体排查步骤:

1. 检查包扫描范围

Spring Boot默认仅扫描启动类所在包及其子包下的组件。你的启动类GestionUsuariosApplication包路径为com.m.g,请确认UserController是否位于com.m.g或其子包(如com.m.g.controller)内。若控制器在外部包,需在启动类上添加@ComponentScan(basePackages = {"你的控制器包路径"})指定扫描范围。

2. 查看控制器注册日志

将Spring Boot日志级别调整为DEBUG,查看RequestMappingHandlerMapping相关日志,它会打印所有成功注册的请求映射:

  • 在application.properties中添加:
    logging.level.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=DEBUG
    

重启应用后,启动日志中应出现类似内容:

Mapped GET /hello onto public java.lang.String com.m.g.controller.UserController.sayHello()

若未出现该日志,说明控制器未被Spring容器加载。

3. 检查请求拦截配置

若引入了spring-boot-starter-security依赖,Spring Security默认会拦截所有请求,需配置放行/hello:

@Configuration
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(auth -> auth
                .requestMatchers("/hello").permitAll()
                .anyRequest().authenticated()
        );
        return http.build();
    }
}

同时检查是否存在自定义Filter或Interceptor,是否无意中拦截了/hello请求。

4. 验证控制器注解导入路径

确认UserController上的@RestController和@GetMapping注解来自Spring Web包:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

避免导入其他框架的同名注解。

5. 清理并重新构建项目

若编译生成的class文件存在异常,执行以下操作:

  • Maven:运行mvn clean install
  • Gradle:运行gradle clean build
    重启应用后,确认target/classes目录下生成了UserController.class文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:14:51