约束冲突不会引发异常



当我启动我的请求时,ConstraintViolationException不希望在合同中带有正则表达式的字段被抛出

这里是邮差中的请求

apiName/v1/account?cardNumer=55^fields=customerName

这里的合约AccountApi包含字段cardNumber

上的正则表达式
@Pattern(regexp = "^[0-9]{6}[A-Z][0-9]{9}$") @Parameter(name = "cardNumber")

这里是带有@Validated注释的Controller.java

AccountController .java实现了AccountApi,它是合约

@RestController
@Validated
@Slf4j
public class AccountController implements AccountApi {
@Override
public ResponseEntity<List<Account>> getAccount(String cardNumer) {
}
}

这里的AccountControllerExceptionHandler.java带有ConstraintViolationException

@ControllerAdvice
public class AccountControllerExceptionHandler{
@ExceptionHandler(value = {ConstraintViolationException.class})
@ResponseBody
@ResponseStatus(HttpStatus.BAD_REQUEST)
public Error manageErrorRegexViolation(final ConstraintViolationException e, HttpServletResponse response) {
log.error("Error ConstraintViolationException {}.", e.getMessage());
}
}
  • 合同中字段cardNumber的正则表达式在这里

  • 控制器中的@Validated注释在这里

  • ExceptionHandler.java中的ConstraintViolationException在这里

在其他线程中,他们只说添加这3个东西

mvn clean package然后在Intelij中无效缓存和maven/reimport,它工作了!

相关内容

  • 没有找到相关文章

最新更新