核查的时候,其实就是怎么校验数据的正确还是错误,核查函数为静态类 MkValidators 内的所有静态函数

注意:
类MkValidators是版本 v1.4.5及之后改名的,之前为Checks

  1. /**
  2. * 核查对象
  3. */
  4. public boolean check(Object object){}
  5. /**
  6. * 核查对象的某些属性
  7. */
  8. public boolean check(Object object, String... fieldSet){}
  9. /**
  10. * 根据分组核查属性
  11. */
  12. public boolean check(String group, Object object) {}
  13. /**
  14. * 核查分组中的对象的某些属性
  15. */
  16. public boolean check(String group, Object object, String... fieldSet){}
  17. /**
  18. * 返回错误信息链
  19. */
  20. public String getErrMsgChain() {}
  21. /**
  22. * 获取最后设置错误信息
  23. */
  24. public String getErrMsg() {}
  25. /**
  26. * 核查对象失败抛异常
  27. */
  28. public void validate(Object object) throws MkException
  29. /**
  30. * 核查对象指定属性失败抛异常
  31. */
  32. public void validate(Object object, String ...fieldSet) throws MkException
  33. /**
  34. * 根据组核查对象失败抛异常
  35. */
  36. public void validate(String group, Object object) throws MkException
  37. /**
  38. * 根据组核查对象指定属性失败抛异常
  39. */
  40. public void validate(String group, Object object, String ...fieldSet) throws MkException

核查整个对象

那么会核查对象中的所有添加@Matcher注解(而且disable=false)的属性

核查某些属性

有些情况下,我们可能不是核查整个对象,而是可能核查某些属性,那么就可以使用核查某些属性的功能

  1. @Data
  2. @Accessors(chain = true)
  3. public class TestEntity {
  4. @Matcher(value = {"nihao", "ok"}, accept = false)
  5. private String name;
  6. @Matcher(range = "[12, 32]")
  7. private Integer age;
  8. @Matcher({"beijing", "shanghai"})
  9. private String address;
  10. }
  1. def "测试指定的属性age"() {
  2. given:
  3. TestEntity entity = new TestEntity().setName(name).setAge(age)
  4. expect:
  5. def act = MkValidators.check(entity, "age");
  6. Assert.assertEquals(result, act)
  7. if (!act) {
  8. println MkValidators.errMsg
  9. }
  10. where:
  11. name | age | result
  12. "nihao" | 12 | true
  13. "ok" | 32 | true
  14. "hehe" | 20 | true
  15. "haohao" | 40 | false
  16. }

核查某个组

对于一个属性,在不同的情况下,对这个属性值的要求可能不同,那么这个时候该怎么办呢,那么group属性就排上用场了

  1. @Data
  2. @Accessors(chain = true)
  3. public class GroupEntity {
  4. @Matchers({
  5. @Matcher(range = "[50, 100]", accept = false),
  6. @Matcher(group = "test1", range = "[12, 23]", accept = false),
  7. @Matcher(group = "test2", range = "[1, 10]", accept = false)
  8. })
  9. private Integer age;
  10. @Matchers({
  11. @Matcher(value = {"beijing", "shanghai", "guangzhou"}),
  12. @Matcher(group = "test1", value = {"beijing", "shanghai"}),
  13. @Matcher(group = "test2", value = {"shanghai", "hangzhou"})
  14. })
  15. private String name;
  16. }
  1. def "测试指定分组指定属性"() {
  2. given:
  3. GroupEntity entity = new GroupEntity().setAge(age).setName(name)
  4. expect:
  5. def act = MkValidators.check("test1", entity, "age");
  6. Assert.assertEquals(result, act)
  7. if (!act) {
  8. println MkValidators.errMsgChain
  9. }
  10. where:
  11. age | name | result
  12. 10 | "shanghai" | true
  13. 12 | "beijing" | false
  14. 23 | "beijing" | false
  15. 50 | "beijing" | true
  16. 100 | "guangzhou" | true
  17. }