Spring Boot 2.6.7中Validation验证失效问题求助
问题:添加@Valid注解后返回空响应体与200状态码
已引入的依赖
在pom.xml中添加了spring-boot-starter-validation依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
Controller代码
@RestController @RequestMapping("v1/transactions") @Validated public class TransactionController { private final TransactionService transactionService; public TransactionController(final @NonNull TransactionService transactionService) { this.transactionService = transactionService; } @ApiOperation(value = "Initiate transaction") @PostMapping(consumes = {MediaType.APPLICATION_JSON_VALUE}, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<TransactionResponse<InitiateTransactionResponseDTO>> createTransaction( @RequestBody @Valid InitiateTransactionRequestDTO createTransactionRequestDTO, @NonNull @RequestHeader("userUuid") String userUuid) { TransactionResponse<InitiateTransactionResponseDTO> responseDTO = new TransactionResponse<>(); InitiateTransactionResponseDTO initiateTransactionResponseDTO = null; try { initiateTransactionResponseDTO = transactionService.initiateTransaction(createTransactionRequestDTO); } catch (Exception e) { System.out.println("=================================" + e.getMessage()); throw e; } responseDTO.setData(initiateTransactionResponseDTO); return new ResponseEntity<>(responseDTO, HttpStatus.CREATED); } }
ControllerAdvice代码
@ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<ErrorResponse> handleValidationException(MethodArgumentNotValidException ex) { throw ex; }
问题现象
移除@Valid注解时,接口能正常返回响应(未执行验证逻辑);但一旦添加@Valid注解,接口就会返回空响应体和200状态码,且没有异常抛出,调试时代码也从未进入catch块。
内容的提问来源于stack exchange,提问作者Imran Ahmad
相关产品推荐
相关产品推荐

