DispatcherServlet delega autoridad a beans especializados para que procesen solicitudes y emitan respuestas apropiadas. Por "beans especializados" nos referimos a instancias Object administradas por Spring que implementan los contratos del marco. Normalmente vienen con contratos integrados, pero puedes personalizar sus propiedades, ampliarlas o reemplazarlas.

La siguiente tabla enumera los beans especializados descubiertos por DispatcherServlet:

Tipo de frijol Explicación

Asignación de controladores

Muestra una solicitud de un controlador junto con una lista de interceptores para pre y post procesamiento. El mapeo se basa en algunos criterios, cuyos detalles dependen de la implementación de HandlerMapping.

Las dos implementaciones principales de HandlerMapping son RequestMappingHandlerMapping (que admite métodos anotados con @RequestMapping) y SimpleUrlHandlerMapping (que registra continuamente explícitamente patrones de ruta URI para controladores).

HandlerAdapter

Ayuda a DispatcherServlet a llamar al controlador asignado a la solicitud, independientemente de cómo se llame realmente al controlador. Por ejemplo, llamar a un controlador anotado requiere resolución de anotaciones. El objetivo principal del HandlerAdapter es proteger el DispatcherServlet de dichos detalles.

HandlerExceptionResolver

Una estrategia para reconocer excepciones, posiblemente asignándolas a controladores, presentando errores en HTML u otros objetivos.

VerResolver

Reconoce nombres de vistas lógicas basándose en la String devuelta por el controlador con la View real que se representará en la respuesta.

LocaleResolver, LocaleContextResolver

Reconoce la locale que está utilizando el cliente, y posiblemente su zona horaria, para proporcionar vistas internacionalizadas.

Resolver tema

Reconoce temas que su aplicación web podría utilizar, por ejemplo, para ofrecer diseños personalizados.

Resolver multiparte

Una abstracción para analizar una solicitud de varias partes (por ejemplo, cargar un archivo desde un formulario de navegador) utilizando alguna biblioteca de análisis de solicitudes de varias partes.

FlashMapManager

Almacena y recibe un FlashMap de "entrada" y "salida" que se puede utilizar para pasar atributos de una solicitud a otra, generalmente mediante redirección.