java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > javax.validation在SpringBoot请求使用

javax.validation在Spring Boot请求中使用方式

作者:IT 挑山工

在Spring Boot中进行请求参数验证,可以通过引入`spring-boot-starter-validation`依赖,并在实体类和控制器中使用`javax.validation`注解来实现,配置包括引入依赖、在实体类中添加注解、在控制器方法中使用`@Valid`注解以及捕获异常并返回自定义错误消息

在Spring boot中对请求的参数做简单的验证

可以使用javax.validation注解。

需要做以下配置:

1. 在pom.xml配置

引入spring boot validation starter (这步比较容易遗漏,因为代码中没有对它的引用依赖,打包编译都不会报错)

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>`

2. 在需要请求的实体类中

使用javax.validation注解

import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@Data
public class QueryVo {
    private String data;

    @NotEmpty(message = "Input can not be empty!")
    @NotNull(message = "Input can not be empty!")
    private String input;
}

3. 在对应的请求中使用@Valid 注解

    @ApiOperation(value = "查询")
    @RequestMapping(path = "/query", method = RequestMethod.POST)
    @ResponseBody
    public APIModel query(@Valid @RequestBody QueryVo query) throws Exception {
        return service.query(query);
    }

4. 捕获异常并组装返回消息格式

    @ExceptionHandler(value = BindException.class)
    public APIModel bindExceptionHandler(HttpServletRequest request, BindException e) {
        logger.error("Error found:", e);
        BindingResult bindingResult = e.getBindingResult();
        List<ObjectError> objectErrors = bindingResult.getAllErrors();
        ObjectError objectError = objectErrors.get(0);
        return APIModel.error(objectError.getDefaultMessage());
    }

5. 测试代码获取如下结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文