【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. 返回给客户端。
相关推荐
喵个咪23 分钟前
Go-Wind HTTP 服务器从入门到精通
后端·http·go
hunterandroid28 分钟前
Hilt 依赖注入:从手动 new 到自动装配
后端
喵个咪29 分钟前
Go-Wind gRPC 服务器从入门到精通
后端·go·grpc
喵个咪29 分钟前
Go-Wind GraphQL 服务器从入门到精通
后端·graphql
青青子衿悠悠我心29 分钟前
Docker与Kubernetes的十年战争与融合
后端
AI小老六30 分钟前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程
云技纵横31 分钟前
@Transactional 到底要不要加 rollbackFor?一次数据不一致事故讲清楚
后端·面试
Csvn40 分钟前
日志分析进阶 — Logwatch 与 GoAccess 实战
后端
Moment40 分钟前
牛逼,NextJs 从 16.3 开始全面拥抱 Agent Native 🥰🥰🥰
前端·后端·面试