javabean 注解验证工具类

public class BeanValidatorUtils {
    static ValidatorFactory vf = Validation.buildDefaultValidatorFactory();

    static Validator validator = vf.getValidator();

    public static String validate(Object obj) {
        String result = "";
        Set<ConstraintViolation<Object>> set = validator.validate(obj, new Class[0]);
        if (set.isEmpty())
            return null;
        for (ConstraintViolation<Object> cv : set)
            result = result + "," + cv.getMessage();
        if (!StringUtils.isBlank(result))
            return result.substring(1);
        return null;
    }

    public static void main(String[] args) {
        CebPubTransfer cebPubTransfer = new CebPubTransfer();
        System.out.println(validate(cebPubTransfer));
    }
}
public class CebPubTransfer {
    private String guid;

    private String bizType;

    private String bizGuid;

    @NotEmpty(message = "传输模式不能为空")
    @ByteLength(max = 3, message = "传输模式长度超过限制")
    private String dxpMode;

    @NotEmpty(message = "报文发送企业代码不能为空")
    @ByteLength(max = 18, message = "报文发送企业代码长度超过限制")
    private String copCode;

    @NotEmpty(message = "报文发送企业名称不能为空")
    @ByteLength(max = 100, message = "报文发送企业名称长度超过限制")
    private String copName;

}

Hibernate Validator是一种基于注解校验框架,用于验证JavaBean中的数据。它提供了一种简单易用的方式来确保数据的完整性和一致性,在实际开发中被广泛应用。 下面是一个校验工具类的示例: ```java import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import java.util.Set; public class ValidatorUtils { private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); /** * 校验对象 * * @param obj 待校验对象 * @param groups 待校验的组 * @throws Exception 校验不通过,则报Exception异常 */ public static void validateEntity(Object obj, Class<?>... groups) throws Exception { Set<ConstraintViolation<Object>> constraintViolations = validator.validate(obj, groups); if (!constraintViolations.isEmpty()) { StringBuilder msg = new StringBuilder(); for (ConstraintViolation<Object> constraintViolation : constraintViolations) { msg.append(constraintViolation.getMessage()).append("<br>"); } throw new Exception(msg.toString()); } } } ``` 使用示例: ```java public class User { @NotNull(message = "用户名不能为空") private String username; @NotNull(message = "密码不能为空") private String password; // getter and setter } public class Test { public static void main(String[] args) { User user = new User(); user.setUsername(null); user.setPassword(null); try { ValidatorUtils.validateEntity(user); } catch (Exception e) { e.printStackTrace(); } } } ``` 注意事项: - 需要在JavaBean的属性上添加相应的注解; - 需要在校验工具类中使用`Validation.buildDefaultValidatorFactory().getValidator()`方法获取`Validator`对象; - 可以通过`groups`参数指定需要校验的组,如果不指定,则校验所有组的规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值