Spring Boot profile: tách cấu hình dev, staging và prod
22/07/2026
Ứng dụng cần cấu hình khác nhau giữa máy dev và server production: URL database, log level, cờ tính năng. Spring Boot profile giải quyết việc này gọn gàng.
File cấu hình theo profile
Spring nạp application.yml chung, rồi ghi đè bằng application-{profile}.yml tương ứng profile đang bật. Ví dụ application-prod.yml chỉ chứa phần khác biệt của production.
# application.yml
spring:
profiles:
active: ${SPRING_PROFILES_ACTIVE:dev}
# application-prod.yml
logging:
level:
root: WARN
Kích hoạt profile
- Biến môi trường:
SPRING_PROFILES_ACTIVE=prod - Tham số JVM:
-Dspring.profiles.active=prod - Ưu tiên biến môi trường ở production để không phải build lại image cho từng môi trường
Đừng nhét secret vào file cấu hình
Mật khẩu database, API key KHÔNG được commit vào application-prod.yml. Dùng biến môi trường (${DB_PASSWORD}) hoặc secret manager. File cấu hình chỉ nên chứa cấu trúc và giá trị mặc định không nhạy cảm.
Nguyên tắc 12-factor: cấu hình theo môi trường phải nằm ngoài mã nguồn.
👉 Dùng thử công cụ liên quan trên dev-hub: YAML Formatter — chạy hoàn toàn trong trình duyệt, không gửi dữ liệu lên server.