← New search

Other meanings of Spring MVC

Web Frameworks

Spring MVC

Spring MVC is a web framework module of the Spring Framework for building Java web applications. It implements the Model-View-Controller (MVC) design pattern, providing a clean separation between business logic, presentation, and request handling. Since its introduction in 2002, it has become one of the most widely used server-side Java frameworks, known for its flexibility, annotation-driven configuration, and seamless integration with the broader Spring ecosystem.

2002
Initial release
Year Spring MVC was introduced
6.x
Current major version
As of 2024
~30%
Market share among Java web frameworks
Estimated usage in enterprise applications
1

Core architecture

Spring MVC is built around the DispatcherServlet, which routes incoming HTTP requests to appropriate handlers based on URL mappings and annotations. The framework separates concerns into three components: the Model (data), the View (presentation), and the Controller (request handling). Controllers are typically annotated with @Controller and methods with @RequestMapping (or its variants like @GetMapping), enabling flexible and declarative request mapping.

Key abstractions include HandlerMapping, HandlerAdapter, and ViewResolver, which allow customization of request processing and view rendering. Spring MVC supports a wide range of view technologies, including JSP, Thymeleaf, FreeMarker, and Tiles, and integrates with the Spring IoC container for dependency injection.

2

Annotation-driven development

Modern Spring MVC relies heavily on annotations to reduce boilerplate code. The @RestController annotation combines @Controller and @ResponseBody, simplifying the creation of RESTful APIs. Data binding and validation are handled via @ModelAttribute, @RequestParam, and @PathVariable, while @RequestBody and @ResponseBody enable automatic JSON/XML serialization using Jackson or JAXB.

Exception handling is centralized with @ControllerAdvice and @ExceptionHandler, allowing consistent error responses. The framework also supports asynchronous request processing with DeferredResult and Callable, and reactive programming via Spring WebFlux, though WebFlux is a separate module.

3

Integration and ecosystem

Spring MVC is part of the larger Spring Framework, which includes modules for security (Spring Security), data access (Spring Data), and testing (Spring Test). It integrates seamlessly with Spring Boot, which provides auto-configuration and embedded servers, making it the default choice for many Java web applications. Spring MVC also supports internationalization (i18n), theming, and content negotiation, and can be extended with interceptors, filters, and custom argument resolvers.

Its compatibility with Java EE standards, such as Servlet API and JSP, ensures broad adoption in enterprise environments. The framework's documentation and community support are extensive, with numerous tutorials and production-ready examples.

4

Lesser-known aspects

Beyond the basics, Spring MVC offers several less-publicized features. The @CrossOrigin annotation enables CORS configuration at the method or class level. The framework supports matrix variables in URLs via @MatrixVariable, and can handle multipart file uploads with MultipartFile. It also includes a built-in FlashMap mechanism for passing attributes between redirects.

Spring MVC's HandlerInterceptor allows pre- and post-processing of requests, and its WebMvcConfigurer interface provides advanced customization without XML. The framework's testing support includes MockMvc, which allows unit testing of controllers without a real server. Additionally, Spring MVC can be used with Kotlin, leveraging its concise syntax and null safety.

Glossary

DispatcherServlet
The front controller in Spring MVC that handles all incoming HTTP requests and delegates to handlers.
Controller
A class annotated with @Controller that handles requests and returns model data and view names.
ViewResolver
A component that resolves logical view names to actual view implementations (e.g., JSP, Thymeleaf).
RESTful API
An API that follows REST architectural constraints, often returning JSON or XML.

Spring MVC remains a cornerstone of Java web development, continuously evolving with new features while maintaining backward compatibility.