【实体类的一些常用注解】

一、字段校验注解

Spring Boot 提供了一些注解用于校验请求参数、请求体等数据。这些注解类位于 javax.validation.constraints 包中,在springboot2.3以上需要引入pom包。


    org.springframework.boot
    spring-boot-starter-validation

常用的字段校验注解包括:

  1. @NotNull :验证对象是否为 null,但不验证空字符串。

  2. @NotEmpty :验证对象是否不为 null 且长度大于 0,验证字符串是否不为空。

  3. @NotBlank :只验证字符串不为空,不验证 null 和长度。

  4. @Size(min=, max=) :验证对象(字符串、集合、Map、数组等)长度是否在指定范围内。

  5. @Min(value=) :验证数值是否大于等于指定值。

  6. @Max(value=) :验证数值是否小于等于指定值。

  7. @DecimalMin(value=) :验证 BigDecimal 或 BigInteger 是否大于等于指定值。

  8. @DecimalMax(value=) :验证 BigDecimal 或 BigInteger 是否小于等于指定值。

  9. @Digits(integer=, fraction=) :验证数值是否符合指定的整数位和小数位。

  10. @Email :验证字符串是否是邮箱格式。

  11. @Pattern(regexp=) :验证字符串是否符合指定的正则表达式。

以上是常用的字段校验注解,你可以根据具体需求选择使用。在使用注解进行校验时,需要在控制器的方法入参中添加 @Valid 注解,并在方法参数中添加一个 BindingResult 对象,用于接收校验结果。如果校验结果有错误,可以从 BindingResult 对象中获取错误信息进行处理,bindingResult.hasErrors()判断是否有不满足条件的字段,无则false,有则true。bindingResult.getAllErrors()获取所有的报错信息类通过getDefaultMessage()来获取具体的message,最后将多个message放入一个集合中返回给前端。

实际操作如下:

User类

public class User {
    @NotBlank(message = "用户名不能为空")
    private String name;
    @NotBlank(message = "1234")
    private String password;
}

Controller接口

public User aa(@RequestBody @Valid User user, BindingResult bindingResult) {
    if(bindingResult.hasErrors()){
        List allErrors = bindingResult.getAllErrors();
        for (ObjectError allError : allErrors) {
            System.out.println(allError.getDefaultMessage());
        }
        return user;
    }
    return user;
}

二、字段时间格式注解

DateTimeFormat和JsonFormat
@DateTimeFormat(pattern = "yyyyMMdd HH:mm:ss")

@JsonFormat(pattern ="yyyyMMdd HH:mm:ss" ,timezone = "GMT+8")

private Date date;


DateTimeFormat主要用于前端向后端传值 ,比如配置pattern=yyyyMMdd HH:mm:ss,那么前端传过来的数据要满足 20220230 12:11:00 它会自动将字符串转换为date存起来,


JsonFormat主要用于后端向前端传值,比如配置pattern=yyyyMMdd HH:mm:ss,那么在controller接口若直接设置Date date=new Date(),直接设置date值传到前端就会直接得到格式化的时间,不需要经过SimpleDateFormat进行格式化,一般加上时区:timezone = “GMT+8”,因为有时@JsonFormat注解格式化时间会不起作用

你可能感兴趣的:(spring,boot,idea,java)