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

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

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

HandlerMapping

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

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

HandlerAdapter

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

HandlerExceptionResolver

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

ViewResolver

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

LocaleResolver, LocaleContextResolver

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

ThemeResolver

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

MultipartResolver

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

FlashMapManager

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