1、依赖选择。

1.1非spring boot项目

依赖选择

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.13.Final</version>
        </dependency>

注意单独引用validation-api不生效,需配合hibernate-validator使用,而hibernate-validator已经内嵌jakarta.validation-api所以使用hibernate-validator即可。

        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
        </dependency>
或
      <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>

1.2 spring boot项目

在springboot 2.3之前,spring-boot-starter-web包里面有hibernate-validator包。springboot 2.3之后spring-boot-starter-web包不再包含hibernate-validator包。

        <!-- springboot 2.3之后消失的hibernate-validator解决方法-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

2使用

controller的请求参数bean的字段

 /**
     * id
     */
    @NotBlank(message = "用户 id 不可为空。")
    private String id;

    /**
     * 姓名
     */
    @NotNull(message = "用户姓名不可为空。")
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 手机
     */
    private String phone;

controller中需要判断的bean前需要加@Valid注解。

public ResponseBaseVO getUserList(@Valid UserVo userVo, BindingResult bindingResult){
        ResponseBaseVO result = ResponseBaseVO.ok();

        if (bindingResult.hasErrors()) {
            result.setCode(ResponseBaseVO.ERROR_CODE);
            result.setMessage(bindingResult.getFieldError().getDefaultMessage());
        }

        return result;
    }
posted on 2021-06-28 16:34  哑吧  阅读(792)  评论(0编辑  收藏  举报