发布时间:2026/9/4 4:56:16
Java Web 业务流程 注释 RestController RequestMapping(/api) public class HealthController { GetMapping(/health) public MapString, String health() { return Map.of(status, ok); } }RestController、RequestMapping、GetMapping都是注解。Spring 看到不同注解会决定怎么处理这个类或方法。RestController它是在告诉 Spring这个类是一个 REST API Controller请你管理它并让它能够接收 HTTP 请求。Spring Boot 启动时扫描到它就知道这个类是一个Controller可以用来接收前端发过来的请求。RequestMapping(/api)意思是这个 Controller 里面所有接口统一先加/api。与GetMapping(/health)拼起来构成了一个完整的URL/api/healthGetMapping(/health)它告诉 Spring当收到一个GET 请求地址是/health的时候就执行这个方法。浏览器 / Vue↓GET /api/health↓Spring MVC找到 HealthController↓找到 GetMapping(/health)↓执行 health()↓返回 Java Map↓Spring 自动转 JSON↓{status: ok}以上就是现代 Spring Boot Controller 最基本的工作方式。Spring MVC之所以能够正确匹配Controller是因为在Spring Boot启动时会扫描所有的带有RestController注解的类并将所有的类提前登记就好比Spring MVC在启动时建立了一张“路由表”当请求发过来的时候会根据URL查询路由表找到相同URL对应的类并执行。Vue 前端↓GET /api/health↓Tomcat 收到 HTTP 请求↓DispatcherServlet↓Spring MVC 查“路由表”↓发现GET /api/health对应HealthController.health()↓执行 health()↓返回数据这里涉及到一个关键的东西叫做DispatcherServlet可以把它理解为Spring MVC的总前台它会根据额Spring启动时登记好的规则根绝URL分发给不同的Controller。GET/POST 叫做HTTP方法URL 决定“找哪个资源”HTTP 方法决定“要对这个资源干什么”。比如GET /api/students 查学生。POST /api/students 新增学生。PUT /api/students/12 修改 12 号学生。DELETE /api/students/12 删除 12 号学生。前端按钮触发的前端代码决定了HTTP方法的发送。function createStudent() { axios.post(/api/students, formData) }发送的时POST请求。URI 是“资源标识符”的总称URL 是 URI 的一种专门用来说明资源在哪里、怎么访问。URI├─ URL└─ 其他类型的标识符比如https://example.com/api/students/12这是一个 URL因为它告诉你协议https主机example.com路径/api/students/12也就是这个资源在哪里以及怎么访问它。而像/api/students/12这种在 Spring 代码里经常写的东西更准确地说是一个URI 路径它并没有告诉你主机和协议。真正开发时URL、URI、path 这几个词经常被人不那么严格地混着说只要你知道它们严格意义上不是完全一回事即可。请求映射注解最常见的有 5 个注解HTTP 方法常见含义举例GetMappingGET查询查询学生列表PostMappingPOST新增新建学生、提交反馈PutMappingPUT整体修改修改学生信息PatchMappingPATCH部分修改只修改学生备注DeleteMappingDELETE删除删除某条记录例如学生接口RestController RequestMapping(/api/students) public class StudentController { GetMapping public ListStudent list() { ... } PostMapping public Student create() { ... } PutMapping(/{id}) public Student update() { ... } DeleteMapping(/{id}) public void delete() { ... } }那么对应关系就是GET /api/students → 查询学生 POST /api/students → 新增学生 PUT /api/students/12 → 修改 12 号学生 DELETE /api/students/12 → 删除 12 号学生这里还有一个“老大”RequestMapping它更通用。所以可以理解成RequestMapping ↓ 简化出了 GetMapping PostMapping PutMapping PatchMapping DeleteMapping现在 Spring Boot 项目里一般优先用后面这些因为更直观。Spring 组件/Controller 注解RestController是在告诉 Spring这个类是一个 Web Controller而且它的方法返回的数据通常直接作为 HTTP 响应返回。Controller和RestController有什么区别传统 Spring MVCController public class StudentController { }Controller最初主要用于返回网页。比如GetMapping(/students) public String students() { return students; }以前可能表示去找 student.html 或JSP页面。这在传统“前后端不分离”的 Java Web 项目里非常常见。但在前后端分离的项目中Spring Boot 后端基本不负责生成页面而是返回JSON数据。可以粗略的理解为Controller ResponseBody RestControllerResponseBody意思是不要把返回值当作网页名称直接把返回的数据写进 HTTP 响应。Service、Repository、Compoent:这些虽然和RestController不完全属于同一种功能但你会经常看到它们一起出现。例如RestController public class StudentController { }表示Web 接口层。然后Service public class StudentService { }表示业务逻辑层。然后Repository public class StudentRepository { }表示数据访问层。还有一个更通用的Component表示这是一个普通的 Spring 组件请 Spring 创建和管理它。可以暂时认为Component ↑ │ ┌──────┼───────────┐ │ │ │ Service Repository Controller它们本质上都在告诉 Spring“这个类你要管起来。”但是它们表达的职责不同。一般项目业务逻辑例如RestController RequestMapping(/api/students) public class StudentController { private final StudentService studentService; ... }然后Service public class StudentService { private final StudentRepository studentRepository; ... }可以翻译成RestController StudentController 负责接前端请求 ↓ Service StudentService 负责业务逻辑 ↓ Repository StudentRepository 负责数据库整个链路逻辑Vue │ │ GET /api/students ↓ RestController StudentController │ │ GetMapping ↓ list() │ ↓ Service StudentService │ ↓ Repository StudentRepository │ ↓ 数据库以上就是对于一个项目中出现的注解的认识。

相关新闻

2026/9/4 4:56:16

OpenCut:开源本地化视频剪辑工具部署与API自动化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/4 4:51:16

基于微信小程序的智能停车场管理系统全栈开发实战

简介:本资源是一套完整的基于微信小程序的智能停车场管理系统设计源码,面向前端开发者、全栈学习者及智慧交通类项目实践者,解决传统停车场信息不透明、车位难寻、支付繁琐等核心痛点,适用于毕业设计、课程实训与小型智慧园区落地…

2026/9/4 4:51:16

Python机器学习使用降噪技术优化训练数据的操作技巧【教程】

java基础知识汇总关于Java基础知识, 存在Java的历史与特点、Java的开发环境、Java的基本数据类型、变量以及常量、运算符和表达式、控制语句、数组和字符串等诸般知识点。那些想要更为深入了解Java基础知识的朋友, 可阅读本专题之下的相关文章, 热烈欢迎诸位前来php中文网展开学…

2026/9/4 5:51:19

基于YOLOv11n与PaddleOCR的车牌识别系统:从原理到工程实践

简介:本资源是一套面向人工智能初学者与计算机视觉开发者的轻量级车牌识别系统实现,聚焦图像识别与OCR技术融合应用,适用于智能交通、安防监控等实际场景的快速原型验证。项目基于YOLOv11n实现高效车牌目标检测,结合PaddleOCR完成…

2026/9/4 5:51:19

本地化AI角色应用部署指南:从环境配置到批量任务实践

这次我们来看一个名为“小庄的日常1”的项目。从标题和有限的材料来看,这很可能是一个围绕“小庄”这个角色或IP展开的本地化AI应用,可能涉及图像生成、视频剪辑、语音合成或数字人交互等技术。这类项目的核心价值在于将AI能力封装成易于使用的工具或工作…

2026/9/4 5:51:19

做微型UPS别乱选芯片!这份升压IC选型指南请收好

微型UPS常应用于便携设备、智能家居等场景,作为断电时的供电保障。其内部的DC-DC升压芯片负责电压转换,对系统的输出稳定性、续航能力、体积和成本均有直接影响。市面上微型UPS的升压方案较多,远翔FP系列升压芯片可将电池电压提升至5V、9V、1…

2026/9/4 5:51:19

双站SAR回波仿真与非线性压缩感知成像

简介:本资源面向雷达信号处理、压缩感知算法研究及SAR成像方向的研究生与科研工程师,聚焦非线性压缩感知(NCS)在双站SAR回波建模与稀疏成像中的关键技术实现。针对传统线性CS难以刻画SAR回波强非线性调制特性的问题,提…

2026/9/4 5:51:19

计算机教材策划与写作:从知识重构到工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/4 5:46:19

Delphi 12.3下Jvcl源码编译与核心控件应用实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 18:28:26

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/3 14:29:47

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/3 14:30:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/4 0:00:58

STM32H743 SPI从机DMA双缓冲通信实战

简介:本资源是面向嵌入式开发工程师与STM32进阶学习者的SPI DMA双机通信从机端完整实现方案,聚焦STM32H743高性能Cortex-M7单片机在工业控制与高速数据交互场景下的从机通信开发痛点。压缩包含1355个文件,主体为599个C源码与321个头文件&…

2026/9/4 0:00:58

CPU开盖降温教程:20元成本让温度直降30度的原理与实践

最近很多朋友都在抱怨,自己的电脑一到夏天就变成"烤箱",玩游戏时CPU温度动不动就飙到90度以上,风扇噪音堪比直升机。更让人头疼的是,明明配置不错,却因为高温降频导致性能大打折扣。如果你也遇到了类似问题&…

2026/9/4 0:00:58

ArkTS 表单工程:场地预约页的三态场次 Grid 与校验

ArkTS 表单工程:场地预约页的三态场次 Grid 与校验 App 14「运动场地预约」场地 Tab(Func1Tab),是整 App 交互最丰富的页面——场地横向切换 三色图例 渐变预约预览卡 快捷模板 今日场次 Grid(可选/已选/已满三态&…

2026/9/3 20:43:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/3 17:51:43

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/3 21:06:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…