自学内容网 自学内容网

springboot 参数校验

1、SpringBoot集成hibernate-validate模块,实现校验

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

2、使用校验注解

@Data
@ApiModel("封装注册请求数据")
public class UserRegisterDto {
    // @NotNull 校验参数不为null
    // @NotEmpty 不能为null以及空字符串
    @NotEmpty(message = "用户名不能为空")
    private String userName;
    
    @NotNull(message = "密码不能为空")
    @Length(min = 6,max = 10,message = "密码必须6-10位")
    private String pwd;
    
    @NotNull(message = "手机号不能为空")
    @Pattern(regexp = "^1[3456789]\\d{9}$",message = "手机号码不合法")
    private String phone;
}

3、控制器方法启用校验

@RestController
@RequestMapping("/user")
public class UserController {
    /**
    * 用户注册
    */
    @PostMapping("/regist")
    public Result regist(@RequestBody @Valid UserRegisterDto
    userRegisterDto){
    return Result.ok();
    }
}

快速失败:当校验只要有一个参数不合法,立刻返回失败,不再继续校验。

@Configuration
public class ValidatorConfiguration {
    @Bean
    public Validator validator(AutowireCapableBeanFactory
                                       springFactory) {
        try (ValidatorFactory factory =
                     Validation.byProvider(HibernateValidator.class)
                             .configure()
// 快速失败
                             .failFast(true)
// 解决 SpringBoot 依赖注入问题
                             .constraintValidatorFactory(new
                                     SpringConstraintValidatorFactory(springFactory))
                             .buildValidatorFactory()) {
            return factory.getValidator();
        }
    }
}


原文地址:https://blog.csdn.net/wyh2943455568/article/details/143466387

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!