Sprint Boot @Valid使用方法详解

  • Post category:Java

Sprint Boot的“@Valid”的作用与使用方法的完整攻略

在Spring Boot中,我们可以使用注解来实现参数校验。其中,@Valid注解可以用于校验实体类中的属性是否符合要求。本文将介绍@Valid注解的作用和使用方法,以及两个示例说明。

1. @Valid注解的作用

@Valid注解用于校验实体类中的属性是否符合要求。如果属性不符合要求,则会抛出ConstraintViolationException异常。

2. @Valid注解的使用方法

使用@Valid注解需要遵循以下步骤:

  1. 在pom.xml文件中添加依赖。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  1. 在Controller中使用@Validated注解。
@RestController
@Validated
public class MyController {
    // ...
}
  1. 在实体类属性上使用注解进行校验。
public class MyEntity {
    @NotNull
    private String name;

    @Min(18)
    private int age;

    // getter and setter
}

在上面的示例中,我们在实体类属性上使用了@NotNull和@Min注解,表示该属性不能为空且最小值为18。如果属性不符合要求,则会抛出ConstraintViolationException异常。

  1. 在Controller方法中使用@Valid注解进行校验。
@PostMapping("/user")
public User createUser(@Valid @RequestBody User user) {
    // ...
}

在上面的示例中,我们在Controller方法的参数上使用了@Valid注解,表示需要对该参数进行校验。如果参数不符合要求,则会抛出ConstraintViolationException异常。

3. 示例1:使用@Valid注解校验请求参数

假设我们有一个Controller,其中有一个方法用于接收一个请求参数。我们可以使用@Valid注解来校验该参数是否符合要求。

@RestController
@Validated
public class MyController {
    @PostMapping("/user")
    public User createUser(@Valid @RequestBody User user) {
        // ...
    }
}

在上面的示例中,我们在Controller方法的参数上使用了@Valid注解,表示需要对该参数进行校验。如果参数不符合要求,则会抛出ConstraintViolationException异常。

4. 示例2:使用@Valid注解校验实体类属性

假设我们有一个实体类,其中有多个属性需要校验是否符合要求。我们可以使用@Valid注解来校验这些属性是否符合要求。

public class User {
    @NotNull
    private String name;

    @Min(18)
    private int age;

    // getter and setter
}

在上面的示例中,我们在实体类属性上使用了@NotNull和@Min注解,表示该属性不能为空且最小值为18。如果属性不符合要求,则会抛出ConstraintViolationException异常。

5. 总结

@Valid注解用于校验实体类中的属性是否符合要求。使用@Valid注解需要在pom.xml文件中添加依赖,然后在Controller中使用@Validated注,在实体类属性上使用注解进行校验,在Controller方法的参数上使用@Valid注解进行校验。在实际开发中,可以根据需要使用@Valid注解来校验实体类属性是否符合要求。