怎么做网站促收录,北京住房建设网官网,深圳网站设计公司费用,石家庄装修设计公司一.前言
使用springboot搭建项目时#xff0c;我们都是采用的Restful风格接口#xff0c;这里面问题来了#xff0c;当前端调用接口或者是其他项目调用时#xff0c;传入参数时我们不能单一靠调用方来控制参数的准确性#xff0c;自己也要一些参数进行判断,进行非空之类的…一.前言
使用springboot搭建项目时我们都是采用的Restful风格接口这里面问题来了当前端调用接口或者是其他项目调用时传入参数时我们不能单一靠调用方来控制参数的准确性自己也要一些参数进行判断,进行非空之类的 简单介绍 NotEmpty 加了NotEmpty的String类Collection、Map、数组是不能为null或者长度为0的String、Collection、Map的isEmpth()方法
NotBlank 加了NotBlank的String类不为null或者空
NotNull 校验不能为null。
使用方式 引入相关的依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency实体增加注解
Data
public class TestVo{NotEmpty(message 姓名不能为空)private String name;NotEmpty(message 身份证不能为空)private String id;controller接收实体加校验注解Valid
public TestVotest(RequestBody Valid TestVo data) {
}异常信息获取自定义全局异常控制器
RestControllerAdvice
public class MyExceptionHandler {Logger logger LoggerFactory.getLogger(MyExceptionHandler.class);ResponseBodyExceptionHandler(BindException.class)public TestExceptionBody exceptionHandler(BindException bindException) {try {//这里获取的的exceptionMessage 就是NotEmpty(message 姓名不能为空)中的messageString exceptionMessage Objects.requireNonNull(bindException.getBindingResult().getFieldError()).getDefaultMessage();//自定义异常对象TestExceptionBody中自定义的message方法return TestExceptionBody.message(exceptionMessage);} catch (Exception e) {logger.error(e.toString());return TestExceptionBody.error();}}
}区别 NotEmpty用到集合香一些 NotBlank用到String真香 NotNull用到基本类型香一些 看似NotEmpty更强大其实有一个细微区别。 加了NotBlank还能判定String类型中的空字符串比如“ ”也是不会通过校验的。 NotNull只判null基本类型会好很多
综述建议 String 类型用NotBlank 基本类型用NotNull 其他类型用NotEmpty