SmartMVC
Все документы
Руководство
Возможности
Аутентификация
Пример
Справочник
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
Все документы
Руководство
Возможности
Аутентификация
Пример
Справочник
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
  • Начало работы

    • Знакомство со SmartMVC
    • Быстрый старт
    • Как SmartMVC обрабатывает запрос

Как SmartMVC обрабатывает запрос

Если понимать порядок выполнения, проще решить, где настраивать нужное поведение и какая часть системы за него отвечает.

Этапы обработки запроса

Типичный запрос проходит через следующие этапы:

  1. Начало измерения времени: фильтр журналирования сохраняет время начала запроса;
  2. Поиск обработчика в Spring MVC: определяется метод контроллера;
  3. Аутентификация и авторизация: защищённый метод API обрабатывается перехватчиком аутентификации SmartMVC;
  4. Преобразование и проверка параметров: строки с датой и временем преобразуются в Java-типы, а Bean Validation проверяет входные данные;
  5. Выполнение контроллера: запускается бизнес-код приложения;
  6. Формирование ответа или ошибки: обычное значение оборачивается в ApiResponse, а исключение преобразуется в единый ответ об ошибке;
  7. Запись итогов запроса: в качестве категории логгера используется фактический контроллер; в журнал попадают статус и время выполнения.

Успешный путь

@GetMapping("/users/{id}")
public UserView get(@PathVariable Long id) {
    return userService.get(id);
}

Контроллер возвращает только бизнес-данные. После выполнения метода механизм ответа оборачивает их в следующую структуру:

{
  "success": true,
  "code": "OK",
  "message": "success",
  "data": { "id": "1001", "name": "Ada" },
  "timestamp": "1786005000000"
}

Путь с ошибкой

throw new ResourceNotFoundException("User 1001 was not found");

Глобальный обработчик извлекает из исключения HTTP-статус, код и текст ошибки. По умолчанию он вернёт HTTP 404:

{
  "success": false,
  "code": "RESOURCE_NOT_FOUND",
  "message": "User 1001 was not found",
  "data": null,
  "timestamp": "1786005000000"
}

Что можно заменить или отключить

SmartMVC использует условную автоконфигурацию Spring Boot. Приложение может:

  • отключить единые ответы или стандартную обработку исключений;
  • предоставить собственный AuthInterceptor;
  • предоставить собственный CurrentAuth или связанные компоненты;
  • изменить форматы дат, часовой пояс и уровень журнала запросов;
  • вернуть ApiResponse напрямую, чтобы точно задать ответ конкретного метода API.

Фреймворк предлагает рабочие реализации по умолчанию, но бизнес-правила остаются под контролем приложения. Далее подробно разберём самую заметную возможность — единый формат ответа.

Изменить эту страницу на GitHub
Последнее обновление: 07.08.2026, 08:33
Назад
Быстрый старт
Далее
Единый формат ответа