У меня есть метод контроллера, который обычно возвращает ResponseEntity .Клиент загружает этот ответ и, по существу, может загружать файлы по идентификатору из моего сервиса.
Однако, если при получении файла произошла ошибка, я хочу вернуть ResponseEntity для отображения сообщения об ошибке (и другой код состояния).
В настоящее время я достигаю этого, создав собственный класс, расширяющий RuntimeException.Это перехватывается @ControllerAdvice, который, в свою очередь, возвращает ResponseEntity .
Мне было интересно, есть ли лучший способ решения этой проблемы?Первоначально я использовал ResponseEntity >, где ControllerResult - это класс-оболочка с универсальным параметром для данных.Это позволило мне просто установить нулевые данные, если произошла ошибка, переключить логическое значение hasError и проверить это в контроллере.Однако это привело к тому, что Spring автоматически преобразовал байтовый массив в строку base64 (не знаю, почему).