使用spring-boot-starter-validation实现前端参数校验
spring-boot
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot
·
目录
原理
在Spring Boot中集成javax.validation来校验前端传递的参数是Java企业版(Java EE)的一部分,并在Java SE环境中通过Bean Validation API来实现。这个API提供了一种声明式校验的方式,你可以通过在实体类或DTO(数据传输对象)的字段上添加注解来指定校验规则。
实现步骤
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
在实体类或DTO上添加校验注解
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
public class UserDTO {
@NotBlank(message = "用户名不能为空")
private String username;
@Size(min = 6, max = 20, message = "密码长度必须在6到20个字符之间")
private String password;
// 省略getter和setter方法
}
在控制器中使用校验
import org.springframework.http.ResponseEntity;
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
public class UserController {
@PostMapping("/users")
public ResponseEntity<String> createUser(@Valid @RequestBody UserDTO userDTO) {
// 处理用户数据
return ResponseEntity.ok("用户创建成功!");
}
}
全局异常处理
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity<String> handleValidationExceptions(MethodArgumentNotValidException ex) {
// 从异常中提取错误信息并返回
return ResponseEntity.badRequest().body(ex.getBindingResult().getFieldError().getDefaultMessage());
}
}
测试校验
启动Spring Boot应用,并通过Postman或其他API测试工具来测试校验逻辑。如果传递的参数不符合校验规则,你应该会收到一个400 Bad Request的响应,并带有相应的错误信息。
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:1 个月前 )
2f5e9b5a
Closes gh-47942
22 小时前
2f33f73e
Fix type in `Map` reference.
Closes gh-47943
1 天前
新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐


所有评论(0)