• valid 校验方式


    校验参数方法:
    1.最简单的方式是,使用Java bean注解校验(如 @NotEmpty。。。)
    2.适合复杂点的自定义校验(推荐)
    2.1 先定义一个校验接口:
    public interface ValidationHandler {
    /**
    * 校验pojo的属性
    * @return 通过/不通过
    */
    boolean isValid();
    }
    2.2 pojo实现接口ValidationHandle,编写校验逻辑
    public class UserVo implements ValidationHandler {
    private String username;
    private Integer age;
    @Override
    public boolean isValid() {
    return StringUtils.isNotEmpty(username)
    && age > 0
    && age < 100;
    }
    }
    2.3 切面,此处切点使用注解:
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ParamValidation{
    }
    2.4 在service中使用
    @Service
    public class UserService{
    @ParamValidation
    public void addUser(UserVo user){
    //业务操作
    }
    }
    2.5 具体切面代码
    @Component
    @Aspect
    public class ParamValidator{
    @Pointcut("@annotation(com.ex.validator.ParamValidation)")
    public void validate(){

    }
    @Before("validate()")
    public void before(JoinPoint point){
    for (Object arg : joinPoint.getArgs()) {
    if (arg instanceof ValidationHandler) {
    if (!((ValidationHandler) arg).isValid()) {
    throw new IllegalArgumentException("参数校验不通过");
    }
    }
    }
    }
    }
    3.简单实用版(极力推荐)
    3.1 在实体中,加上一个校验方法,此方法加上注解@AssetTure
    public class UserVo {
    private String username;
    private Integer age;
    @AssertTrue
    public boolean isValid() {
    return StringUtils.isNotEmpty(username)
    && age > 0
    && age < 100;
    }
    }
    3.2 在service类上加上@Validated,参数前加上@Valid
    @Validated //打开校验开关
    @Service
    public class UserService {
    // 入参pojo添加@Valid
    public void addUser(@Valid UserVo userVo) {
    // 业务逻辑操作
    }
    }
  • 相关阅读:
    32位和64位系统区别及int字节数
    C++默认参数不能是一个引用
    sprintf的缓冲区溢出
    linux之cp/scp命令+scp命令详解
    linux文件属性详细说明
    linux tar打包
    sed命令
    常用linux命令
    C++ 类T T t;构造时分配的内存在静态数据区 T t=new T()分配的内存在堆 这样说对吗
    Dom事件的三种绑定方式
  • 原文地址:https://www.cnblogs.com/dwb91/p/10519739.html
Copyright © 2020-2023  润新知