SpringBoot中@GetMapping映射失效问题求助
SpringBoot @GetMapping路由映射失效排查方案
我尝试了所有方法,但SpringBoot的@GetMapping注解始终无法实现路由映射。此前在另一个SpringBoot项目中该操作正常,因此我对此问题感到困惑。运行应用后SpringBoot无映射信息,访问页面时出现404错误,重新从Spring初始化网站构建项目仍存在相同问题。(项目结构显示主启动类位于根包下,控制器放在controller子包中)
以下是针对性的排查和解决步骤:
- 确认包扫描范围:检查主启动类的
@SpringBootApplication注解,默认会扫描主类所在包及其子包。如果控制器所在包不在这个范围内,需手动指定扫描路径:@SpringBootApplication(scanBasePackages = "com.example.demo.controller") - 验证控制器类注解:确保控制器类上标注了
@RestController或@Controller,缺少这两个注解的类不会被Spring识别为控制器组件。 - 检查Web依赖完整性:确认项目依赖中包含Spring Web starter:
Maven配置:
Gradle配置:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>implementation 'org.springframework.boot:spring-boot-starter-web' - 查看启动日志:启动应用时,留意控制台是否有路由映射日志,比如
Mapped "{/test}" onto public java.lang.String com.example.demo.controller.TestController.test()。如果没有此类日志,说明控制器未被加载。 - 核对路由路径:检查
@GetMapping的路径是否拼写正确,避免多余斜杠或参数格式错误(比如@GetMapping("/test/")和@GetMapping("/test")是不同路径)。 - 清理项目缓存:执行
mvn clean install(Maven)或gradle clean build(Gradle),清理编译缓存后重新构建项目。
内容的提问来源于stack exchange,提问作者Patrik Kelemen
相关产品推荐
相关产品推荐

