java bean通过注解实现校验
2018-01-10 10:06
246 查看
1、引入需要的jar包
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.4.1.Final</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency>
2、封装工具类
import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.ValidationException; import javax.validation.Validator; import javax.validation.ValidatorFactory; public class ValidationUtil { private static Validator validator; static { ValidatorFactory vf = Validation.buildDefaultValidatorFactory(); validator = vf.getValidator(); } public static <T> void validate(T t) throws ValidationException { Set<ConstraintViolation<T>> set = validator.validate(t); if (set.size() > 0) { StringBuilder validateError = new StringBuilder(); for (ConstraintViolation<T> val : set) { validateError.append(val.getMessage() + " ;"); } throw new ValidationException(validateError.toString()); } } }
3、在对应的实体类中,给需要进行校验的实体添加相应的注解
@Size(min = 1,message = "名称不能为空!") @NotNull(message = "名称不能为空!") private String biddingName;
4、在实现类中调用即可
@Override public Response saveBidding(PurchaseBiddingHeaderVO headerVO) { try { ValidationUtil.validate(headerVO); . . . } catch(ValidationException e){ e.printStackTrace(); //返回校验结果给前台 return getErrorResponse(ResponseCodeEnum.ERROR.getValue(), e.getMessage()); }catch (Exception e) { e.printStackTrace(); throw new RuntimeException(); }
常用注解列表
@Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @AssertFalse 被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max=, min=) 被注释的元素的大小必须在指定的范围内 @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内 @Past 被注释的元素必须是一个过去的日期 @Future 被注释的元素必须是一个将来的日期 @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 //Hibernate Validator 附加的 constraint @NotBlank(message =) 验证字符串非null,且长度必须大于0 @Email 被注释的元素必须是电子邮箱地址 @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内 @NotEmpty 被注释的字符串的必须非空 @Range(min=,max=,message=) 被注释的元素必须在合适的范围内
相关文章推荐
- 通过Pojo对象 field 属性加注解实现格式校验,极大的减少代码量
- 使用SpringBoot通过自定义注解+AOP+全局异常处理实现参数统一非空校验
- 通过Pojo对象 field 属性加注解实现格式校验,极大的降低代码量
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
- 通过注解实现通用导出Excel
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
- PHP实现通过Luhn算法校验信用卡卡号是否有效
- 通过注解方式配置Spring实现Ioc
- Spring MVC AOP通过自定义注解方式拦截Controller等实现日志管理
- java自定义注解实现前后台参数校验的实例
- AOP实现方式2——通过AspectJ提供的注解实现AOP
- 通过@Resource注解实现属性装配代码详解
- 利用Xstream注解实现xml和java bean之间的转换
- Tomcat下通过CXF实现不用注解发布WebService
- Spring MVC 通过切面,实现超灵活的注解式数据校验
- Spring 通过AOP 来实现前置,环绕,异常通知,注解
- 三个类学习通过注解实现自动测试
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
- 如何通过自定义注解实现AOP切点定义
- 通过自定义注解利用AOP在springmvc中实现记录日志