Nội dung
Danh sách bài học
- 01~26 phút
DispatcherServlet — front controller pattern và vòng đời 1 HTTP request
DispatcherServlet là entry point của mọi request Spring MVC. Bài này bóc front controller pattern, 9 bước HandlerMapping → HandlerAdapter → Controller → ViewResolver, các bean infra (HandlerMapping, HandlerAdapter, MessageConverter, HandlerExceptionResolver), và cách Boot autoconfig setup tất cả.
- 02~22 phút
@RestController và @RequestMapping — annotation-driven controller
@RestController = @Controller + @ResponseBody. Bài này bóc 3 generation của controller annotation, mapping pattern (class-level + method-level), 7 HTTP method shortcut, content negotiation qua produces/consumes, và cách MVC route 1 request đến đúng method.
- 03~24 phút
Request binding — @PathVariable, @RequestParam, @RequestBody, @Valid
Spring MVC tự bind dữ liệu từ HTTP request vào parameter Java. Bài này bóc 6 source binding (path, query, body, header, cookie, session), HandlerMethodArgumentResolver mechanism, type conversion, default value, và pattern bind record DTO + validation.
- 04~22 phút
Response handling — ResponseEntity, status code, header, content negotiation
Spring có 3 cách trả response: return DTO trực tiếp, ResponseEntity, ResponseBodyAdvice. Bài này bóc HTTP status semantics, ResponseEntity builder, custom header, file download/streaming, ResponseBodyAdvice cho global wrapping, và HATEOAS link với Spring HATEOAS.
- 05~24 phút
Exception handling — @ExceptionHandler, @ControllerAdvice, Problem Details RFC 9457
Spring có 3 layer exception handling: @ExceptionHandler local, @ControllerAdvice global, ResponseStatusException. Bài này bóc 3 HandlerExceptionResolver default, ProblemDetail Boot 3 native (RFC 9457), pattern domain exception → HTTP status, security cảnh báo (đừng leak stack trace), và testing exception handler.
- 06~22 phút
Validation — Jakarta Bean Validation, custom validator, cross-field
Jakarta Bean Validation 3.0 chuẩn JSR 380. Bài này bóc 23 built-in constraint, @Valid cascade, custom @Constraint annotation, cross-field validation, validation groups (Create/Update), validation runtime trong service layer, và pattern fail-fast.
- 07~22 phút
OpenAPI/Swagger với springdoc-openapi — auto-generate API doc
OpenAPI 3.x là chuẩn industry mô tả REST API. Bài này bóc springdoc-openapi (Boot 3 native), auto-detect controller annotation → spec, customize qua @Operation/@Schema, security scheme, group multi-API, và pattern API-first vs code-first.
- 08~35 phút
Mini-challenge: TaskFlow REST API v1 — capstone Module 03
Build TaskFlow REST API v1 từ scratch — domain Project + Task. 8 endpoint CRUD, validation, exception handling Problem Details, OpenAPI doc, in-memory storage. Đây là baseline cho Module 04+ (JPA, Security) extend lên.