Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning.
1.1. DispatcherServlet
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.
1.2. Filters
1.3. Annotated Controllers
Spring MVC provides an annotation-based programming model where @Controller and @RestController components use annotations to express request mappings, request input, exception handling, and more. Annotated controllers have flexible method signatures and do not have to extend base classes nor implement specific interfaces.
1.4. Functional Endpoints
Spring Web MVC includes WebMvc.fn, a lightweight functional programming model in which functions are used to route and handle requests and contracts are designed for immutability.
1.5. URI Links
This section describes various options available in the Spring Framework to work with URI’s.
1.6. Asynchronous Requests
Spring MVC has an extensive integration with Servlet 3.0 asynchronous request processing。
1.7. CORS
Spring MVC lets you handle CORS (Cross-Origin Resource Sharing).
1.8. Web Security
The Spring Security project provides support for protecting web applications from malicious exploits.
1.9. HTTP Caching
HTTP caching can significantly improve the performance of a web application.
1.10. View Technologies
The use of view technologies in Spring MVC is pluggable. Whether you decide to use Thymeleaf, Groovy Markup Templates, JSPs, or other technologies is primarily a matter of a configuration change.
1.11. MVC Config
The MVC Java configuration and the MVC XML namespace provide default configuration suitable for most applications and a configuration API to customize it.
1.12. HTTP/2
Servlet 4 containers are required to support HTTP/2, and Spring Framework 5 is compatible with Servlet API 4.