validation-api分组校验工具类

 主要是根据业务场景需求对参数进行校验,不单单是Rest层的校验,也可以作为普通方法参数校验。

引入依赖
       
            javax.validation
            validation-api
            1.1.0.Final
       

       
            org.hibernate
            hibernate-validator
            5.2.4.Final
       

 

工具类:

public class ValidateUtil {

    public static Validator validator;
    private static ValidatorFactory factory;

    static {
        Locale.setDefault(new Locale("zh", "CN"));
        factory = Validation.buildDefaultValidatorFactory();
        validator = factory.getValidator();
    }

  
    public static  String paramCheckReturnStrMsg(T bean, Class... groups) {
        if (bean == null) {
            return null;
        }
        Set> validateSet = validator.validate(bean, groups);
        StringBuilder stringBuilder = new StringBuilder();
        for (ConstraintViolation constraintViolation : validateSet) {
            stringBuilder.append(constraintViolation.getMessage()).append(",");
        }
        if (stringBuilder.length() == 0) {
            return null;
        }
        return stringBuilder.toString().substring(0, stringBuilder.length() - 1);
    }
}

测试VO

public class User {

    // 标记接口
    public interface NameNotBlank{};

    private  int age;

    @NotBlank(message = "姓名不能为空",groups = NameNotBlank.class )
    private  String  name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public User(int age, String name) {
        this.age = age;
        this.name = name;
    }
}

测试方法:

@RestController
public class TestRe {
    @RequestMapping("/test")
    public String get(@RequestBody User user){     
        String str = ValidateUtil.paramCheckReturnStrMsg(user,User.NameNotBlank.class);
        if(null != str ){
            System.out.println("参数异常情况:"+str);
        }else{
            System.out.println("参数正常");
        } 
       return str;
    }
}

 

你可能感兴趣的:(工具)