The full picture
🎬 Spring MVC: journey of a request
1 / 6GET /orders/42 arrives. Every request enters through ONE servlet — the DispatcherServlet (front controller pattern). Filters (security, CORS) already ran before it.
- Before the servlet: the Filter chain (container-level) — Spring Security lives here, outside MVC. Interceptors run inside, around the handler.
- Argument resolution is the underrated half:
HandlerMethodArgumentResolvers turn the raw request into your typed signature; you can register custom ones (e.g.,@CurrentUser User user). - Content negotiation picks the converter via Accept header/produces — the same controller can emit JSON or XML without code changes.
- Boot's role: auto-configures the DispatcherServlet, sensible converters, and error handling — the machinery is Framework; the pre-wiring is Boot.