使用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分支:2 个月前 )
c63dbe7e
Closes gh-48333
1 天前
e9db595c
This commit adapts TestRestTemplate#getRootUri to the recently
introduced LocalTestWebServer. The behavior invokes the
UriTemplateHandler to provide the value. If the implementation expands
full URL, then it will provide the expected behavior. If not, it should
return the empty string as before.
Closes gh-48330
1 天前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)