DispatcherServlet делегує повноваження спеціалізованим бінам, щоб вони обробляли запити та видачу належних відповідей. Під "спеціалізованими бінами" ми маємо на увазі керовані Spring екземпляри Object, які реалізують контракти фреймворку. Зазвичай вони поставляються з вбудованими контрактами, але можна налаштувати їх властивості, розширити або замінити їх.

У цій таблиці наведено спеціалізовані біни, виявлені DispatcherServlet:

Тип біна Пояснення

HandlerMapping

Відображає запит на обробник разом зі списком interceptors для попередньої та постобробки. Відображення ґрунтується на певних умовах, деталі яких залежать від реалізації HandlerMapping.

Дві основні реалізації HandlerMappingRequestMappingHandlerMapping (яка підтримує методи, анотовані @RequestMapping) та SimpleUrlHandlerMapping (яка постійно здійснює явну реєстрацію шаблонів шляхів URI для обробників).

HandlerAdapter

Допомагає DispatcherServlet викликати обробник, відображений на запит, незалежно від того, як обробник буде викликаний насправді. Наприклад, виклик анотованого контролера вимагає дозволу анотацій. Основна мета HandlerAdapter — захистити DispatcherServlet від таких деталей.

HandlerExceptionResolver

Стратегія для розпізнавання винятків шляхом їх можливого відображення на обробники, подання помилок на HTML або інші цілі.

ViewResolver

Розпізнає логічні імена подання на основі String, що повертається обробником, з фактичним View, яке візуалізуватиметься у відповіді.

LocaleResolver, LocaleContextResolver

Розпізнає Locale, яку використовує клієнт, і, можливо, його часовий пояс, щоб забезпечити інтернаціоналізовані уявлення.

ThemeResolver

Розпізнає теми, які може використовувати твій вебдодаток — наприклад, щоб пропонувати персональні макети.

MultipartResolver

Абстракція для парсингу багатокомпонентного запиту (наприклад, завантаження файлу з браузерної форми) за допомогою деякої бібліотеки синтаксичного аналізу багатокомпонентних запитів.

FlashMapManager

Зберігай та отримуй "вхідний" та "вихідний" FlashMap, які можна використовувати для передачі атрибутів від одного запиту до іншого, зазвичай через переадресацію.