zoukankan      html  css  js  c++  java
  • 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) {
    // 业务逻辑操作
    }
    }
  • 相关阅读:
    【JVM基础】JVM垃圾回收机制算法
    【java基础】- java双亲委派机制
    Java基础(一)
    JVM
    冷知识: 不会出现OutOfMemoryError的内存区域
    疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
    nor flash之写保护
    spinor/spinand flash之高频通信延迟采样
    nor flash之频率限制
    使用littlefs-fuse在PC端调试littlefs文件系统
  • 原文地址:https://www.cnblogs.com/dwb91/p/10519739.html
Copyright © 2011-2022 走看看