DTO 与验证
学习如何使用 DTO,并在 Spring Boot 中应用验证规则。
DTO 与验证 是 CoddyKit 上的免费 Java Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 3 节课。
简介
DTO(数据传输对象)用于在各层之间传递结构化数据。它们不是实体,也不是数据库模型。
为什么使用 DTO
DTO 只公开所需字段、隐藏数据库细节,并提高安全性,从而简化 API。
代码:DTO 类
一个简单的 DTO 定义字段以及获取器和设置器,并与数据库实体分离。
public class UserDto {
private String name;
private int age;
// getters and setters
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
验证
验证可确保 DTO 数据符合要求(例如不为空且年龄为正数)。
代码:验证注解
使用 @NotBlank 和 @Min 等注解来强制执行验证规则。
import jakarta.validation.constraints.*;public class UserDto {
@NotBlank
private String name;
@Min(0)
private int age;
// getters/setters omitted for brevity
}
代码:带验证的控制器
@Valid会在方法逻辑运行前触发 DTO 验证。
import org.springframework.web.bind.annotation.*;import org.springframework.validation.annotation.*;import jakarta.validation.*;@RestController
@RequestMapping("/users")
class UserController {
@PostMapping
public String create(@Valid @RequestBody UserDto dto) {
return "Received: " + dto.getName() + ", " + dto.getAge();
}
}
DTO 检查
快速检查:DTO 在 Spring Boot 中的作用是什么?
回顾
回顾:创建了 DTO,添加了验证注解,并在带有 @Valid 的控制器中使用了它。
常见问题解答
「DTO 与验证」课时是免费的吗?
是的 — 「DTO 与验证」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 3 节课。
「DTO 与验证」这节课中我会学到什么?
学习如何使用 DTO,并在 Spring Boot 中应用验证规则。 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Java Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「DTO 与验证」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Java Academy 课中编写并运行代码吗?
能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 项目设置与 Starter
- DTO 与验证
- 小项目:REST API