精弘网络 Java 后端微课 - EP1 控制器的编写和数据绑定

353 字
2 分钟
精弘网络 Java 后端微课 - EP1 控制器的编写和数据绑定

新建工程#

若无法连接到官方 Spring Initializr,可更换到国内站点 https://start.springboot.io/

  • Spring Web
  • Spring Validation
  • MySQL Driver
  • Lombok
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<parameters>true</parameters>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

编写一个控制器#

什么是“控制器”(Controller)#

在 Spring Boot 中,控制器是处理用户请求的入口

你可以把它想象成一个网站或接口的“接待员”: 👉 用户发来请求,控制器接收、处理,然后返回响应。

@RestController 是什么#

@RestController = @Controller + @ResponseBody

用来告诉 Spring 这个类是一个控制器(用来接收 Web 请求),并且返回的是 JSON 数据(而不是 HTML 页面)

@RequestMapping 是什么#

告诉 Spring,这个类负责处理哪个 URL 请求

常用方法:加在类上,定义“公共前缀”

数据绑定#

Query 参数绑定#

@GetMapping("/get")
public String get(@RequestParam("name") String name) {
return name;
}

路径参数绑定#

@GetMapping("/get/{name}")
public String get(@PathVariable("name") String name) {
return name;
}

绑定 Query 或表单到对象#

@Data
public class User {
private String name;
private Integer age;
}
@GetMapping("/get")
public String get(User user) {
return user.toString();
}

绑定 JSON 到对象#

@Data
public class User {
@JsonProperty("first_name")
private String firstName;
private Integer age;
}
@PostMapping("/post")
public String post(@RequestBody User user) {
return user.toString();
}

参数校验#

@NotNull@NotEmpty@NotBlank
@Size@Email
@Min@Max

统一 JSON 响应体#

@Data
@AllArgsConstructor
public class AjaxResult<T> {
public static final String SUCCESS_MSG = "OK";
private Integer code;
private String msg;
private T data;
public static <N> AjaxResult<N> success() {
return new AjaxResult<>(HttpStatus.OK.value(), SUCCESS_MSG, null);
}
public static <N> AjaxResult<N> success(N data) {
return new AjaxResult<>(HttpStatus.OK.value(), SUCCESS_MSG, data);
}
public static <N> AjaxResult<N> fail(Integer code, String msg) {
return new AjaxResult<>(code, msg, null);
}
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

精弘网络 Java 后端微课 - EP1 控制器的编写和数据绑定
https://blog.sugarmgp.cn/posts/summer-lessons-ep1/
作者
SugarMGP
发布于
2025-08-04
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
SugarMGP
大二学生
站点统计
文章
15
分类
4
标签
29
总字数
11,620
运行时长
0
最后活动
0 天前

文章目录