
本文旨在帮助开发者解决 Spring Boot 项目中使用 `@GetMapping` 注解时遇到的 404 错误。通过分析常见原因和提供清晰的解决方案,确保你的 Spring Boot 应用能够正确映射 HTTP GET 请求,并返回期望的结果。
当你在 Spring Boot 项目中使用 @GetMapping 注解来映射 HTTP GET 请求时,可能会遇到 404 错误,导致页面无法访问。这通常意味着 Spring Boot 无法找到与你请求的 URL 匹配的映射。以下是一些常见原因和相应的解决方案:
1. 缺少路径信息
@GetMapping 注解需要指定映射的路径。如果未提供路径,则默认映射到根路径 /,但通常建议明确指定路径。
示例:
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String index() {
return "Greetings from Spring Boot!";
}
}在这个例子中,@GetMapping("/hello") 将 index() 方法映射到 /hello 路径。要访问此方法,需要在浏览器中输入 http://localhost:8080/hello。
2. 端口号错误
确保你使用的端口号与 Spring Boot 应用实际运行的端口号一致。默认情况下,Spring Boot 使用 8080 端口。可以在 application.properties 或 application.yml 文件中修改端口号:
server.port=8081
如果设置了不同的端口号,请确保在浏览器中使用正确的端口号访问,例如 http://localhost:8081/hello。
3. @RestController 注解缺失
@RestController 注解是 @Controller 和 @ResponseBody 的组合。它指示 Spring Boot 将该类作为 REST 控制器处理,并将方法的返回值直接写入 HTTP 响应体。如果缺少 @RestController 注解,Spring Boot 可能无法正确处理请求。
确保你的类上添加了 @RestController 注解:
@SpringBootApplication
@RestController
public class DemoApplication {
// ...
}4. Spring Boot 启动失败
查看控制台输出,确保 Spring Boot 应用成功启动,并且没有错误信息。如果启动失败,可能是由于配置错误、依赖冲突或其他问题。解决启动问题后,重新尝试访问你的端点。
5. DispatcherServlet 初始化问题
控制台输出中包含了 Initializing Spring DispatcherServlet 'dispatcherServlet' 和 Completed initialization in 0 ms 的信息。如果初始化时间过长或出现错误,可能会导致请求无法正确处理。检查你的 Spring Boot 配置和依赖,确保 DispatcherServlet 能够正确初始化。
6. 清理缓存和重新构建项目
有时候,旧的编译文件或缓存可能会导致问题。尝试清理你的 Maven 项目并重新构建:
mvn clean install
然后重新运行 Spring Boot 应用。
总结
解决 Spring Boot 中 @GetMapping 不生效的问题,需要仔细检查以下几个方面:
通过逐一排查这些常见原因,你应该能够找到并解决问题,使你的 Spring Boot 应用能够正确映射 HTTP GET 请求。
以上就是解决 Spring Boot 中 @GetMapping 不生效的问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号