使用Hibernate-Validator优雅的验证参数

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用Hibernate-Validator优雅的验证参数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

第一步 添加maven依赖

  1、添加 Hibernate-Validator 依赖,如果使用了springboot,则不需要引用任何依赖,因为spring-boot-starter-web包中已经包含了Hibernate-Validator 依赖

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

  在Vo属性上加入相应的注解 使用lombok 的@Data注解自动生成gettter/setter方法

  注意:String 使用@NotBlank Integer类型使用@NotNull  其他类型还暂时没用到

第二步建立对应的Vo

@Data
@NoArgsConstructor
@AllArgsConstructorpublic class User {
    @NotBlank(message = "姓名不能为空")
    private String name;  @NotNUll(message="年龄不能为空")    private Integer age;
}

第三部 使用

1、如果是Post方法,需在@RequestBody 的前面或者后面加上@Valid注解

/**
     * 测试校验框架返回结果格式
     */
    @PostMapping(value = "/validator")
    public String testValidator(@RequestBody @Valid User user){
        return "校验成功...";
    }

2、get方法,需要在类上加入注解@Validated,然后再加入其它对应注解

@RestController
@RequestMapping("/user")
@Validated
public class UserController {

    /**
     * 测试校验框架返回结果格式
     */
    @GetMapping(value = "/validator2")
    public String testValidator2(@NotBlank(message = "姓名不能为空") String name){
        return "校验成功...";
    }

}

第四步 定制校验的返回信息

利于spring中的@ControllerAdvice定制优雅的返回信息,spring自带的全局异常处理机制,

/**
 * @Description: 全局的异常处理
 * @Author: chenmingjian
 * @Date: 18-10-31 19:00
 */
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
/** * 参数校验统一异常处理 */@ExceptionHandler(MethodArgumentNotValidException.class)@ResponseBodypublic ResultEntity handleBindException(MethodArgumentNotValidException ex) {    FieldError fieldError = ex.getBindingResult().getFieldError();    log.warn("参数校验异常:{}({})", fieldError.getDefaultMessage(),fieldError.getField());    return ResultEntity.faill(211,fieldError.getDefaultMessage(),null);}
}
ResponseEntity类如下:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @CreateDate 2021/12/1 17:30
 * @Author yuan
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResultEntity<T> {

    private Integer code;

    private String message;

    private T data;

    public  static <T> ResultEntity<T> faill(Integer code,String msg,T t){
        return new ResultEntity<T>(code,msg,t);
    }
}

常用注解

使用Hibernate-Validator优雅的验证参数

 

脚本宝典总结

以上是脚本宝典为你收集整理的使用Hibernate-Validator优雅的验证参数全部内容,希望文章能够帮你解决使用Hibernate-Validator优雅的验证参数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: