← Tất cả bài viết

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.