【Spring Boot】控制器Controller方法

Controller

Spring Boot 的Web应用中,Controller是处理HTTP请求的入口。

核心职责

  • 接受客户端发送的HTTP请求
  • 调用 Service 层完成业务逻辑
  • 将处理结果封装后返回给客户端

MVC (Model-View-Controller)中的"C"

如何定义Controller

在 Spring Boot 中,使用注解来声明一个类是 Controller。
示例代码

java 复制代码
@RestController
@RequestMapper("/api/members")
public class MemberController{
	// 方法
}

注解说明

@RestController 告诉Spring,这是一个用于RESTful API 的控制器,所有方法的返回值都会自动转为 JSON。

@RequestMapping 定义该控制器的公共请求前缀

Controller 方法

每个 Controller 方法,对应一个具体的HTTP接口。
基本结构

java 复制代码
@HTTP_METHOD_MAPPING("路径")
public 返回类型 方法名(参数){
	// 1. 接收参数
	// 2. 调用 Service
	// 3. 返回结果
}

HTTP_METHOD_MAPPING

这些是 @RequestMapping(method = ...)的简写

路径

路径中可以用 {变量名}表示动态部分

复制代码
@GetMapping("/projects/{projectId}/members")

参数的接收方式

Spring Boot 提供多种注释,自动将 HTTP 请求中的数据绑定到方法参数。

示例

复制代码
@GetMapping("/list/{projectId}")
public Result<List<MemberVO>> list(@PathVariable Long projectId) {
    // 从 URL 路径中提取 projectId
}

@PostMapping("/create")
public Result<MemberVO> create(@RequestBody CreateMemberDTO dto) {
    // 从 JSON 请求体中解析出 dto 对象
}

@GetMapping("/search")
public Result<List<MemberVO>> search(
    @RequestParam String keyword,
    @RequestParam(defaultValue = "1") Integer page
) {
    // 从 ?keyword=xxx&page=2 中获取参数
}

返回值

@RestController中,任何返回值都会被自动转为 JSON

可以使用统一返回格式 ,如 Result<T>,这样前端收到的总是结构统一的JSON,便于处理。

执行流程

当发送一个HTTP请求时,Spring Boot 内部的请求为:

  1. 前端控制器接收所有请求;
  2. 根据 URL 和 HTTP 方法,查找匹配的 Controller 方法(通过 @GetMapping等注释);
  3. 解析参数;
  4. 调用方法;
  5. 返回值序列化为 JSON,写入 HTTP 响应;
  6. 返回给客户端。
相关推荐
码事漫谈16 分钟前
AI 技能工程入门:从独立能力到协作生态
后端
码事漫谈16 分钟前
构建高并发AI服务网关:C++与gRPC的工程实践
后端
阿波罗尼亚44 分钟前
Tcp SSE Utils
android·java·tcp/ip
susu10830189111 小时前
springboot3.5.8整合minio8.5.9
java·springboot
不知道累,只知道类1 小时前
深入理解 Java 虚拟线程 (Project Loom)
java·开发语言
myzshare1 小时前
实战分享:我是如何用SSM框架开发出一个完整项目的
java·mysql·spring cloud·微信小程序
颜酱2 小时前
前端必备动态规划的10道经典题目
前端·后端·算法
Chan162 小时前
【 Java八股文面试 | JavaSE篇 】
java·jvm·spring boot·面试·java-ee·八股
wen__xvn2 小时前
代码随想录算法训练营DAY10第五章 栈与队列part01
java·前端·算法
独自破碎E2 小时前
解释一下NIO、BIO、AIO
java·开发语言·nio