cloudopt-next-validator 是 Cloudopt Next 自带的一个优雅的数据校验器,你只需要在 pojo 类需要校验的字段上增加相应的注解即可。

    1. <dependency>
    2. <groupId>net.cloudopt.next</groupId>
    3. <artifactId>cloudopt-next-validator</artifactId>
    4. </dependency>
    1. public class Account(){
    2. @NotNull(message="If the message contains text, you can get it in case of error")
    3. private String test;
    4. // get and set
    5. }
    6. Account account=new Account();
    7. ValidatorTool.validate(account); //验证所有加了注解的字段并获取验证结果对象
    8. ValidatorTool.validate(account"password", "username"); //只验证部分字段
    9. System.out.println(ValidatorTool.validate(account).getResult());
    10. System.out.println(ValidatorTool.validate(account).getMessage());
    1. data class Account(){
    2. @get:NotNull(message="If the message contains text, you can get it in case of error")
    3. var test:String=""
    4. }
    5. Account account=new Account()
    6. ValidatorTool.validate(account) //验证所有加了注解的字段并获取验证结果对象
    7. ValidatorTool.validate(account"password", "username") //只验证部分字段
    8. println(ValidatorTool.validate(account).result)
    9. println(ValidatorTool.validate(account).message)

    目前已经自带了以下的注解:

    1. //用于boolean字段,该字段只能为true。
    2. @AssertTrue
    3. //该字段的值只能为false。
    4. @AssertFalse
    5. //对信用卡号进行一个大致的验证。
    6. @CreditCardNumber
    7. //只能小于或等于该值。
    8. @DecimalMax
    9. //只能大于或等于该值。
    10. @DecimalMin
    11. //检查是否是一种数字的整数、分数,小数位数的数字。
    12. @Digits(integer=2,fraction=20)
    13. //检查是否是一个有效的email地址。
    14. @Email
    15. //检查该字段的日期是否是属于将来的日期。
    16. @Future
    17. //检查所属的字段的长度是否在min和max之间,只能用于字符串。
    18. @Length(min=1,max=3)
    19. //该字段的值只能小于或等于该值。
    20. @Max(value = 4)
    21. //该字段的值只能大于或等于该值。
    22. @Min(value = 4)
    23. //不能为null。
    24. @NotNull
    25. //不能为空,检查时会将空格忽略。
    26. @NotBlank
    27. //不能为空,这里的空是指空字符串。
    28. @NotEmpty
    29. //检查该字段为空。
    30. @Null
    31. //检查该字段的日期是在过去。
    32. @Past
    33. //检查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等。
    34. @Size(min=1, max=3)
    35. //检查是否是一个有效的URL,如果提供了protocol,host等,则该URL还需满足提供的条件。
    36. @URL(protocol=,host,port)
    37. //如果使用这个注解,那么该变量中包含的对象如果也有校验器注解的话就会自动进行校验。
    38. @Valid
    39. //检查是否是信用卡卡号
    40. @CreditCardNumber(ignoreNonDigitCharacters=)
    41. //是否是个链接
    42. @URL(protocol=, host=, port= regexp=, flags=)
    43. //是否是boolean或者int或者double,根据所需在value那里传入即可。如value="boolean"
    44. @Type(value=)
    45. //是否在这个数组(字符串)中
    46. @Inside(value={})
    47. //是否是中文或者不是中文。如果为true则要求变量必须是中文,如果为false则要求变量不能为中文
    48. @Chinese(value=boolean)

    更多支持的注解可以参考:https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-defineconstraints-spec