o retorno da validação vem uma lista vazia em vez do "campo" e "erro". fiz um teste e o controller chama o handle quando da 404, mas não consegui fazer com que trouxesse os campos.
meus códigos:
@RestControllerAdvice
public class ErrodeValidacaoHandler {
    @Autowired
    private MessageSource messageSource;
    @ResponseStatus(code = HttpStatus.BAD_REQUEST)
    @ExceptionHandler(BindException.class)
    public List<ErroDeFormularioDTO> handle(BindException exception) {
        List<ErroDeFormularioDTO> dto = new ArrayList<>();
        List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
        fieldErrors.forEach(e -> {
            String mensagem = messageSource.getMessage(e, LocaleContextHolder.getLocale());
            ErroDeFormularioDTO erro = new ErroDeFormularioDTO(e.getField(), mensagem);
        });
        return dto;
    }
}
public class ErroDeFormularioDTO {
    private String campo;
    private String erro;
    public ErroDeFormularioDTO(String campo, String erro) {
        this.campo = campo;
        this.erro = erro;
    }
    public String getCampo() {
        return campo;
    }
    public String getErro() {
        return erro;
    }
} 
            