Nội dung
Danh sách bài học
- 01~4 phút
Config, Profiles & Logging — tổng quan
Module này gom 3 mặt vận hành của Spring Boot: cấu hình externalized (đổi config không build lại), profiles (1 artifact chạy mọi môi trường), và logging (từ SLF4J tới structured JSON cho ELK).
- 02~12 phút
PropertySource ordering & relax binding — thứ tự ưu tiên và K8s env var
Boot xếp chồng nhiều nguồn config theo thứ tự ưu tiên cố định. Bài này bóc cơ chế PropertySource ordering (command line uu tien cao nhat, tại sao), 12-factor externalize config, và relax binding (DB_URL map sang db.url mà không cần config thêm) — nền tảng để deploy app trên K8s/Docker không hardcode.
- 03~12 phút
@ConfigurationProperties vs @Value — bind config type-safe
Hai cách inject externalized config vào Spring bean: @Value cho 1 giá trị đơn, @ConfigurationProperties để bind cả nhóm property thành object type-safe, có validation, IDE autocomplete, và relax binding. Bài này giải thích cơ chế binding bên dưới, khi nào chọn cái nào, và vì sao @ConfigurationProperties record + @Validated là pattern production 2026.
- 04~12 phút
Spring Profiles — 1 artifact chạy mọi môi trường
Profile là cơ chế Spring gắn nhãn bean và config theo môi trường. Bài này giải thích tại sao profile tồn tại, 5 cách activate, @Profile trên bean/@Component/@Configuration, default profile, và cơ chế evaluate lúc đăng ký bean (không phải lúc getBean).
- 05~13 phút
Profile Groups & Production Patterns — gom profile, validate, blue/green
Profile groups (Boot 2.4+) gom nhiều profile thành một nhóm logic để kích hoạt bằng một tên. Bài này đào sâu cơ chế groups, multi-document YAML, mô phỏng inheritance qua include, và pattern production: secret management, blue/green canary, validate active profile khi startup.
- 06~11 phút
Logging cơ bản — SLF4J facade, Logback, log level và hierarchy
Boot pre-wire 4-layer logging stack: SLF4J facade, Logback implementation, bridge libs. Bài này giải thích vì sao facade pattern tồn tại, cách 5 log level + hierarchy theo package hoạt động, và cấu hình qua logging.level.* property.
- 07~13 phút
Structured Logging — JSON log cho ELK/Loki, MDC correlation, dynamic level
Boot 3.4 GA thêm structured logging JSON built-in với 1 dòng property. Bài này bóc cơ chế tại sao JSON log query được trong ELK (không grep text), MDC correlation ID per-request, dynamic log level qua Actuator runtime không restart, và đổi sang Log4j2 khi cần.
- 08~4 phút
Config, Profiles & Logging — tổng kết
Tóm tắt Config, Profiles & Logging.