本文為博主原創,轉載請注明出處:
@NotEmpty,@NotBlank,@NotNull 這些注解所在的jar包路徑在 javax.validation.constraints 的包下面,這個包下面也封裝了其他的注解
這里列舉一下常用的注解,並做簡單介紹,其余還要在使用的時候慢慢挖掘
//被注釋的元素必須為null @Null //被注釋的元素不能為null @NotNull //被注釋的元素必須為true @AssertTrue //被注釋的元素必須為false @AssertFalse //被注釋的元素必須是一個數字,其值必須大於等於指定的最小值 @Min(value) //被注釋的元素必須是一個數字,其值必須小於等於指定的最大值 @Max(value) //被注釋的元素必須是一個數字,其值必須大於等於指定的最小值 @DecimalMin(value) //被注釋的元素必須是一個數字,其值必須小於等於指定的最大值 @DecimalMax(value) //被注釋的元素的大小必須在指定的范圍內。 @Size(max,min) //被注釋的元素必須是一個數字,其值必須在可接受的范圍內 @Digits(integer,fraction) //被注釋的元素必須是一個過去的日期 @Past //被注釋的元素必須是一個將來的日期 @Future //被注釋的元素必須符合指定的正則表達式。 @Pattern(value) //被注釋的元素必須是電子郵件地址 @Email //被注釋的字符串的大小必須在指定的范圍內 @Length //被注釋的字符串必須非空 @NotEmpty //被注釋的元素必須在合適的范圍內 @Range
這些注解用於加在java的實體類屬性字段上,在進行請求或請求的時候會根據字段的注解進行對應的校驗,簡化校驗相關的代碼。
當校驗不同過時,會返回對應的message描述
在前端請求解析到 controller 的時候,可使用 @valid 注解,開啟校驗,以下為使用的示例:
@PostMapping("/get/user/course") public UserCourseInfo getUserCourseInfo(@Valid @RequestBody CreateUserRequest request) { return userService.getUserCourseInfo(request); }
CreateUserRequest 實體類並添加校驗注解
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.lang.StringUtils; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** * <h1>創建用戶請求對象定義</h1> * Created by Qinyi. */ @Data @NoArgsConstructor @AllArgsConstructor public class CreateUserRequest { /** 用戶名 */ @NotNull(message = "不可為空") @Length(min=20,max=30,message = "長度在20到30") private String username; /** 郵箱 */ @Email @NotBlank private String email; }