Java Web 业务流程 注释

发布时间:2026/11/5 15:59:33

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/11/5 15:59:32

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/11/5 15:59:32

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

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

2026/11/5 15:32:24

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

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

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

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

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

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

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

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

2026/11/5 13:55:19

GD32E10x官方例程入门:从GPIO点灯到串口调试

简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&…

2026/11/5 13:50:18

基于Django的运维平台实战:资产、发布、巡检、告警一体化

简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑