(企业 / 公司项目)SpringBoot3整合校验框架validation
2023-12-13 04:15:02
在Spring Boot项目中使用校验框架validation可以让我们更方便地实现数据校验和错误提示。下面是Spring Boot集成校验框架validation的步骤。
????????添加依赖
在项目的pom.xml文件中添加validation依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
????????定义实体类
定义需要校验的实体类,并在属性上添加@NotBlank、@Max、@Min等校验注解。例如:
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
@NotBlank(message = "密码不能为空")
private String password;
@Max(value = 100, message = "年龄不能超过100岁")
@Min(value = 0, message = "年龄不能小于0岁")
private int age;
// ... getter/setter
}
????????编写校验逻辑
在Controller中编写校验逻辑,首先需要在方法入参中添加@Valid注解,触发校验。例如:
@RestController
public class UserController {
@PostMapping("/user")
public Result saveUser(@Valid @RequestBody User user) {
// 保存用户信息
// ...
return Result.success();
}
// ...
}
????????处理校验错误
在Controller中通过添加BindingResult类型的参数来获取校验结果,并进行错误处理。例如:
@RestController
public class UserController {
@PostMapping("/user")
public Result saveUser(@Valid @RequestBody User user, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return Result.failure(bindingResult.getAllErrors().get(0).getDefaultMessage());
}
// 保存用户信息
// ...
return Result.success();
}
// ...
}
BindingResult中存储了所有的校验错误信息。我们可以通过getAllErrors()方法获取所有错误信息,然后根据需要进行处理。
????????自定义校验注解
在实际开发中,我们可能需要定义自己的校验注解。这时需要定义注解和对应的校验器。例如,定义一个手机号码校验注解和对应的校验器:
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneValidator.class)
public @interface Phone {
String message() default "手机号格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class PhoneValidator implements ConstraintValidator<Phone, String> {
private static final String REGEX_PHONE = "^1[3456789]\\d{9}$"; // 手机号正则表达式
@Override
public void initialize(Phone phone) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (StringUtils.isBlank(value)) {
return true; // 忽略空值,由@NotBlank注解校验
}
return Pattern.matches(REGEX_PHONE, value);
}
}
然后在实体类中使用该注解:
public class User {
// ...
@Phone(message = "手机号格式不正确")
private String phone;
// ... getter/setter
}
至此,Spring Boot集成校验框架validation的步骤介绍完毕。
文章来源:https://blog.csdn.net/qq_60870118/article/details/134879667
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!