springboot(15)validator后台校验

1. 导入依赖

如果想在Spring Boot中使用Hibernate Validator进行后端效验,可以在pom.xml中添加以下依赖:

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

2. @Validated注解

该依赖会自动引入Hibernate Validator的依赖,同时也会自动开启校验功能。在需要校验的类或方法上使用@Validated注解即可开启校验。例如:

@PostMapping("/user")
public String addUser(@Validated @RequestBody User user, BindingResult bindingResult) {
    
    
    // ...
}

3. @Validated 和 @Valid的区别

@Validated和@Valid都是Hibernate Validator中常用的注解,但它们的区别在于作用范围不同。

@Validated注解可以用于类、方法和参数上,它表示当前类或方法是被校验的,或者指定当前参数是被校验的。通常用于类或方法级别的校验,例如:

@RestController
@Validated
public class UserController {
    
    

    @PostMapping("/user")
    public String addUser(@Validated @RequestBody User user, BindingResult bindingResult) {
    
    
        // ...
    }
}

在上面的例子中,@Validated注解表示UserController是被校验的类,@RequestBody注解表示User对象是被校验的参数。

@Valid注解只能用于方法和参数上,它表示当前参数是被校验的。通常用于方法级别的校验,例如:

public class UserService {
    
    
    public void saveUser(@Valid User user) {
    
    
        // ...
    }
}

在上面的例子中,@Valid注解表示User对象是被校验的参数。

总之,@Validated注解作用范围更广,可以用于类、方法和参数上,而@Valid注解只能用于方法和参数上。

3. 配置文件 (可选)

需要注意的是,如果要使用@Validated注解,需要在Spring Boot的配置文件中添加以下配置:

扫描二维码关注公众号,回复: 14703453 查看本文章
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false

以上就是使用Hibernate Validator进行后端效验的基本步骤和配置方法。

5. 常用注解

Hibernate Validator是一个实现了Java Bean Validation API规范的校验框架,可以通过注解的方式来进行校验。以下是一些常用的注解以及对它们的解释。

  • @NotNull:校验对象不能为空
  • @Size:校验对象的大小是否在指定范围内
  • @Email:校验对象是否为合法的邮箱格式
  • @Pattern:校验对象是否匹配指定的正则表达式
  • @Min:校验对象是否大于等于指定的值
  • @Max:校验对象是否小于等于指定的值
  • @DecimalMin:校验对象是否大于等于指定的值,该值可以是小数
  • @DecimalMax:校验对象是否小于等于指定的值,该值可以是小数
  • @Digits:校验对象是否为数字,并且整数部分和小数部分的位数是否在指定范围内
  • @Past:校验对象是否为一个过去的时间
  • @Future:校验对象是否为一个未来的时间
  • @AssertTrue:校验对象是否为true
  • @AssertFalse:校验对象是否为false

以上就是一些常用的Hibernate Validator注解,可以根据需要选择使用。

6. 小案例

在使用Spring Boot时,我们可以使用Hibernate Validator来进行后端的效验。Hibernate Validator是一个实现了Java Bean Validation API规范的校验框架,可以通过注解的方式来进行校验。下面是一个简单的例子:

public class User {
    
    
    @NotNull(message = "用户名不能为空")
    private String username;
    @Size(min = 6, max = 20, message = "密码长度必须为6到20位")
    private String password;
    @Email(message = "邮箱格式不正确")
    private String email;
    // 省略getter和setter方法
}

在上面的例子中,我们使用了三个注解来进行校验:

  • @NotNull:校验对象不能为空
  • @Size:校验对象的大小是否在指定范围内
  • @Email:校验对象是否为合法的邮箱格式

如果校验不通过,会抛出ConstraintViolationException异常,我们可以通过捕获该异常来进行处理。

@PostMapping("/user")
public String addUser(@Validated @RequestBody User user, BindingResult bindingResult) {
    
    
    if (bindingResult.hasErrors()) {
    
    
        List<ObjectError> allErrors = bindingResult.getAllErrors();
        StringBuilder sb = new StringBuilder();
        for (ObjectError error : allErrors) {
    
    
            sb.append(error.getDefaultMessage()).append(",");
        }
        return sb.toString().substring(0, sb.length() - 1);
    }
    // 保存用户信息
    return "success";
}

在上面的例子中,我们使用了@Validated注解来开启校验,如果校验不通过,会将错误信息存储到BindingResult对象中,我们可以通过该对象来获取所有的错误信息。

以上就是Spring Boot中使用Hibernate Validator进行后端效验的简单例子,希望对大家有所帮助。

7. 总结

本文介绍了在Spring Boot中使用Hibernate Validator进行后端效验的基本步骤和配置方法。需要导入依赖,在需要校验的类或方法上使用@Validated注解即可开启校验。@Validated注解可以用于类、方法和参数上,而@Valid注解只能用于方法和参数上。常用的注解包括@NotNull、@Size、@Email、@Pattern、@Min、@Max、@DecimalMin、@DecimalMax、@Digits、@Past、@Future、@AssertTrue、@AssertFalse等。最后给出了一个简单的例子,展示了如何使用Hibernate Validator进行后端效验。

猜你喜欢

转载自blog.csdn.net/Bilal_0/article/details/129986394
今日推荐