实现spring boot validation double


整体流程

首先,我们需要创建一个Spring Boot应用程序,并在其中实现对double类型数据的校验。接下来,我们需要定义一个实体类,为其添加校验注解,并创建一个Controller类来接收请求并进行参数校验。最后,我们需要在应用程序中配置全局异常处理,以处理校验失败的情况。

步骤

步骤 描述
1 创建Spring Boot应用程序
2 定义实体类并添加校验注解
3 创建Controller类并编写接口
4 配置全局异常处理

代码实现

1. 创建Spring Boot应用程序

首先,我们需要创建一个Spring Boot应用程序。可以使用Spring Initializr( Boot项目。

2. 定义实体类并添加校验注解

创建一个实体类,如User.java,并为其中的字段添加校验注解。在本例中,我们为userAge字段添加了@Min和@Max注解,用于校验用户年龄在1到100之间。

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

public class User {
    
    @Min(value = 1, message = "年龄不能小于1")
    @Max(value = 100, message = "年龄不能大于100")
    private Double userAge;

    // Getter and Setter
}

3. 创建Controller类并编写接口

创建一个Controller类,如UserController.java,并编写接口方法。在方法参数上添加@Valid注解,用于启用参数校验。在方法中,可以使用BindingResult对象来获取校验结果。

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Validated
public class UserController {

    @PostMapping("/user")
    public String createUser(@RequestBody @Valid User user, BindingResult result) {
        if (result.hasErrors()) {
            return result.getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining(", "));
        }
        return "User created successfully";
    }
}

4. 配置全局异常处理

在应用程序中配置全局异常处理,以处理校验失败的情况。可以创建一个ExceptionHandler类,并在其中添加一个方法用于处理MethodArgumentNotValidException异常,并返回自定义的错误信息。

import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public String handleValidationExceptions(MethodArgumentNotValidException ex) {
        return ex.getBindingResult().getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining(", "));
    }
}

总结

通过以上步骤,我们成功实现了对double类型数据的参数校验,当用户输入的年龄不在1到100之间时,接口会返回相应的错误信息。希望这篇文章可以帮助你理解如何在Spring Boot应用程序中实现参数校验,并且能够帮助你更好地理解整个流程。


sequenceDiagram
    participant Client
    participant Controller
    participant Service
    participant Repository
    
    Client ->> Controller: 发起请求
    Controller ->> Service: 调用服务
    Service ->> Repository: 数据操作
    Repository -->> Service: 返回数据
    Service -->> Controller: 返回结果
    Controller -->> Client: 返回响应

希望通过这篇文章,你能够掌握如何在Spring Boot应用程序中实现对double类型数据的参数校验,以及全局异常处理的配置。祝你在日后的开发中能够顺利应用这些技能,不断提升自己的开发能力。如果有任何疑问或者需要进一步的帮助,请随时联系我。加油!