能举个DTO校验例子吗?

好的,DTO校验就是确保用户输入的数据符合要求,防止无效数据进入系统。我给你举个简单的例子:

假设你有一个用户注册功能,需要验证用户输入的信息。用Java语言(Spring Boot框架)来演示:

  1. 先定义一个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;
}
  1. 在控制器中使用这个DTO,并自动触发校验:
@RestController
public class UserController {
    
    @PostMapping("/register")
    public String register(@Valid @RequestBody UserRegisterDTO dto) {
        // 如果校验通过,代码才会执行到这里
        return "注册成功:" + dto.getUsername();
    }
}

效果:如果用户传 username 为空或太短,或者年龄填成-5,系统会自动返回错误提示,比如“用户名长度需在3-20个字符之间”,根本不会让错误数据进入下一步处理。

这样你就理解了:DTO校验就是在数据进入业务逻辑之前,先检查一遍,避免程序处理脏数据。