全书目录

第四篇:Spring Boot 完全指南 —— 政务大厅宇宙

第五章:Controller —— 办事窗口怎么接待市民

1 分钟 169 字 第 96 / 962 个阅读单元

在 Spring Boot 里,Controller 就是窗口人员。

java
package com.example.cityhall.permit;

import jakarta.validation.Valid;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/permits")
public class PermitController {

  private final PermitService permitService;

  public PermitController(PermitService permitService) {
    this.permitService = permitService;
  }

  @PostMapping
  @ResponseStatus(HttpStatus.CREATED)
  public PermitResponse create(@Valid @RequestBody CreatePermitRequest request) {
    return permitService.create(request);
  }

  @GetMapping("/{id}")
  public PermitResponse getById(@PathVariable Long id) {
    return permitService.getById(id);
  }
}

最重要的几件事:

  • @RestController:这个窗口默认返回 JSON
  • @RequestMapping:这是窗口柜台号
  • @RequestBody:把市民提交的 JSON 表单收进来
  • @PathVariable:从路径里拿业务编号
  • @Valid:交给校验处先验材料