能举个DTO校验例子吗?
好的,DTO校验就是确保用户输入的数据符合要求,防止无效数据进入系统。我给你举个简单的例子:
假设你有一个用户注册功能,需要验证用户输入的信息。用Java语言(Spring Boot框架)来演示:
- 先定义一个DTO类,加上校验规则:
public class UserRegisterDTO {
@NotNull(message = "用户名不能为空")
@Size(min = 3, max = 20, message = "用户名长度需在3-20个字符之间")
private String username;
@NotBlank(message = "密码不能为空")
@Length(min = 6, max = 30, message = "密码长度需在6-30个字符之间")
private String password;
@Email(message = "请输入正确的邮箱格式")
private String email;
@Min(value = 18, message = "年龄不能小于18")
@Max(value = 150, message = "年龄不能超过150")
private Integer age;
}
- 在控制器中使用这个DTO,并自动触发校验:
@RestController
public class UserController {
@PostMapping("/register")
public String register(@Valid @RequestBody UserRegisterDTO dto) {
// 如果校验通过,代码才会执行到这里
return "注册成功:" + dto.getUsername();
}
}
效果:如果用户传 username 为空或太短,或者年龄填成-5,系统会自动返回错误提示,比如“用户名长度需在3-20个字符之间”,根本不会让错误数据进入下一步处理。
这样你就理解了:DTO校验就是在数据进入业务逻辑之前,先检查一遍,避免程序处理脏数据。