Spring Boot中@GetMapping未生效的常见原因及解决方案

发布时间 - 2026-02-02 00:00:00    点击率:

spring boot中@getmapping未生效的常见原因及解决方案

在 Spring Boot 中,@GetMapping 注解本身不会自动绑定到浏览器直接访问的根路径 / —— 这是初学者最容易误解的关键点。你当前的代码:

@GetMapping
public List hello() { ... }

看似“无参”@GetMapping 应该响应 http://localhost:8080/,但实际上 @GetMap

ping 不加路径参数时等价于 @GetMapping("/"),而 Spring Boot 默认已为 / 配置了静态资源处理器(如 ResourceHttpRequestHandler)和欢迎页逻辑(如 index.html),优先级高于你的控制器方法。因此请求 / 并不会进入你的 hello() 方法,而是触发默认的 404 处理流程,最终显示 Whitelabel Error Page。

✅ 正确做法:显式声明路径,并通过匹配的 URL 访问

修改你的 @GetMapping 为带路径的版本,例如:

@GetMapping("/students")
public List getAllStudents() {
    return List.of(
        new Student(
            1L,
            "Mariam",
            "[email protected]",
            LocalDate.of(2000, Month.JANUARY, 5),
            21
        )
    );
}

然后在浏览器中访问:
? http://localhost:8080/students

此时 Spring MVC 才会正确路由到该方法,并以 JSON 格式返回学生列表(前提是项目已引入 spring-boot-starter-web 且 Jackson 依赖可用)。

⚠️ 其他关键注意事项:

  • 包结构与组件扫描:确保 Demo2Application 类位于最外层包(如 com.example.demo),而 Student 类位于子包(如 com.example.demo.Student)。Spring Boot 默认只扫描启动类所在包及其子包。你当前的 @SpringBootApplication 和 @RestController 合并在一个类上虽可运行,但建议分离关注点:将 @RestController 移至独立的 Controller 类(如 StudentController),放在 com.example.demo.controller 包下,更符合规范。

  • Student 类的序列化支持:LocalDate 默认可被 Jackson 序列化(Spring Boot 2.2+ 内置 jackson-datatype-jsr310),但请确认 pom.xml 中包含:

    
        org.springframework.boot
        spring-boot-starter-web
    

    ✅ 该 starter 已自动引入 Jackson 和 JSR-310 支持,无需额外配置。

  • 避免路径冲突与隐式覆盖:不要将 @GetMapping 留空或设为 "/",尤其当项目后续添加 index.html、favicon.ico 或 Actuator 端点时,极易引发路由冲突。

? 补充调试技巧:

  • 启动后查看控制台日志中的 Mapped "{[/students],methods=[GET]}" 日志行,确认端点是否成功注册;
  • 使用 curl -v http://localhost:8080/students 或 Postman 测试,排除浏览器缓存或重定向干扰;
  • 若仍报错,检查 application.properties 是否误配了 server.servlet.context-path 或 spring.mvc.servlet.path。

总结:@GetMapping 必须配合明确、唯一、未被占用的路径使用;根路径 / 属于保留区域,切勿用于业务接口。遵循 RESTful 命名惯例(如 /api/v1/students)不仅解决当前问题,也为后续扩展打下坚实基础。


# html  # js  # json  # 处理器  # 浏览器  # app  # curl  # ai  # 路由  # springboot  # spring mvc  # mvc  # spring  # spring boot  # restful  # postman  # servlet  # xml 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  php json中文编码为null的解决办法  香港服务器建站指南:免备案优势与SEO优化技巧全解析  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何用腾讯建站主机快速创建免费网站?  如何基于PHP生成高效IDC网络公司建站源码?  Python高阶函数应用_函数作为参数说明【指导】  php结合redis实现高并发下的抢购、秒杀功能的实例  如何在腾讯云服务器上快速搭建个人网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何在建站之星网店版论坛获取技术支持?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  香港服务器选型指南:免备案配置与高效建站方案解析  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何在IIS管理器中快速创建并配置网站?  EditPlus中的正则表达式 实战(2)  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  JavaScript实现Fly Bird小游戏  Linux后台任务运行方法_nohup与&使用技巧【技巧】  网站图片在线制作软件,怎么在图片上做链接?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  米侠浏览器网页背景异常怎么办 米侠显示修复  如何正确下载安装西数主机建站助手?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  成都网站制作公司哪家好,四川省职工服务网是做什么用?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  如何快速搭建支持数据库操作的智能建站平台?  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  使用spring连接及操作mongodb3.0实例  详解Android图表 MPAndroidChart折线图  如何用美橙互联一键搭建多站合一网站?  香港服务器租用费用高吗?如何避免常见误区?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  黑客如何通过漏洞一步步攻陷网站服务器?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何在万网自助建站中设置域名及备案?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel如何使用Eloquent进行子查询