spring-boot-mvc
Spring MVC
This skill covers the web-layer mechanics underneath a controller — request routing, body conversion, and cross-cutting request/response processing. For layering/anti-patterns, see spring-boot-architecture; for package structure (package-by-feature vs. package-by-layer — a frequent "isn't this an MVC thing?" question, but a layering decision, not a web-tier one), see spring-boot-architecture's "Package structure" section specifically; for URL/versioning/pagination conventions, see spring-boot-api-design.
Request mapping
Prefer the HTTP-method-specific annotations (@GetMapping, @PostMapping, @PutMapping, @PatchMapping, @DeleteMapping) over the generic @RequestMapping(method = ...) — shorter, and the method is visible at a glance rather than buried in an attribute.
@GetMapping("/{id}")
public OrderResponse getOrder(@PathVariable Long id) { ... }
@PostMapping
public ResponseEntity<OrderResponse> create(@Valid @RequestBody CreateOrderRequest request) { ... }
Filters vs. HandlerInterceptors — pick based on where the concern belongs
Both intercept the request/response cycle, but at different layers: