Web & REST APIs
Build production-quality HTTP APIs: the DispatcherServlet request lifecycle, request binding and ResponseEntity, Bean Validation, RFC 9457 error responses, Jackson and content negotiation, and outbound calls with RestClient.
Spring MVC: The Request Lifecycle Behind @RestController
Follow one request through DispatcherServlet, HandlerMapping and the message converters, then use that model to bind parameters and pick status codes.
Bean Validation: Where @Valid Fires, and Where It Doesn't
The real difference between @Valid and @Validated, the two exceptions they throw, writing a ConstraintValidator, and why validation spans several layers.
Error Responses: @ControllerAdvice and RFC 9457 ProblemDetail
Map domain exceptions to status codes in one place, and return a standard problem format instead of a per-project error shape nobody documented.
Jackson and Content Negotiation: Controlling the JSON You Emit
How Spring picks a message converter, the Jackson annotations that shape your JSON, custom serialisers, and why polymorphic deserialisation needs care.
Outbound HTTP: RestClient, WebClient and Timeouts That Matter
Which client to use in 2026, why the default timeout of none will take your service down, and the retry and error-handling patterns worth standardising.