mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-05-02 20:09:31 +01:00
64d95d7f3e
Closes gh-36175
39 lines
2.1 KiB
Plaintext
39 lines
2.1 KiB
Plaintext
[[mvc-servlet]]
|
|
= DispatcherServlet
|
|
|
|
[.small]#xref:web/webflux/dispatcher-handler.adoc[See equivalent in the Reactive stack]#
|
|
|
|
Spring MVC, as many other web frameworks, is designed around the front controller
|
|
pattern where a central `Servlet`, the `DispatcherServlet`, provides a shared algorithm
|
|
for request processing, while actual work is performed by configurable delegate components.
|
|
This model is flexible and supports diverse workflows.
|
|
|
|
The `DispatcherServlet`, as any `Servlet`, needs to be declared and mapped according
|
|
to the Servlet specification by using Java configuration or in `web.xml`.
|
|
In turn, the `DispatcherServlet` uses Spring configuration to discover
|
|
the delegate components it needs for request mapping, view resolution, exception
|
|
handling, xref:web/webmvc/mvc-servlet/special-bean-types.adoc[and more].
|
|
|
|
The following example shows the programmatic registration and initialization of
|
|
the `DispatcherServlet`, which is auto-detected by the Servlet container
|
|
(see xref:web/webmvc/mvc-servlet/container-config.adoc[Servlet Config]), and the
|
|
equivalent `web.xml`:
|
|
|
|
include-code::./MyWebApplicationInitializer[tag=snippet,indent=0]
|
|
|
|
NOTE: In addition to using the ServletContext API directly, you can also extend
|
|
`AbstractAnnotationConfigDispatcherServletInitializer` and override specific methods
|
|
(see the example under xref:web/webmvc/mvc-servlet/context-hierarchy.adoc[Context Hierarchy]).
|
|
|
|
NOTE: For programmatic use cases, a `GenericWebApplicationContext` can be used as an
|
|
alternative to `AnnotationConfigWebApplicationContext`. See the
|
|
{spring-framework-api}/web/context/support/GenericWebApplicationContext.html[`GenericWebApplicationContext`]
|
|
javadoc for details.
|
|
|
|
NOTE: Spring Boot follows a different initialization sequence. Rather than hooking into
|
|
the lifecycle of the Servlet container, Spring Boot uses Spring configuration to
|
|
bootstrap itself and the embedded Servlet container. `Filter` and `Servlet` declarations
|
|
are detected in Spring configuration and registered with the Servlet container.
|
|
For more details, see the
|
|
{spring-boot-docs-ref}/web/servlet.html#web.servlet.embedded-container[Spring Boot documentation].
|