<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; public class User { private String username; private int age; } import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import java.util.ArrayList; import java.util.List; @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(ConstraintViolationException.class) public ResponseEntity<List<String>> handleConstraintViolationException(ConstraintViolationException ex) { List<String> errors = new ArrayList<>(); for (ConstraintViolation<?> violation : ex.getConstraintViolations()) { errors.add(violation.getMessage()); } return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors); } } import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*; @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = {CustomValidator.class}) @Documented public @interface CustomValidation { Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; } properties spring.mvc.hiddenmethod.filter.enabled=false spring.mvc.throw-exception-if-no-handler-found=true spring.resources.add-mappings=false spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration


上一篇:
下一篇:
切换中文