Profiles cho phép config khác nhau theo môi trường (dev/staging/prod) — deploy 1 JAR cho tất cả.
File config: application.yml (base) + application-{dev,prod}.yml (merge/override khi profile active). Activate: SPRING_PROFILES_ACTIVE=prod java -jar app.jar.
Bean theo profile: gắn @Profile("dev") / @Profile("prod") trên class bean → bean chỉ tồn tại ở env tương ứng (vd MockMailSender cho dev, SmtpMailSender cho prod). @Profile("!prod") = mọi env trừ prod.
Profile groups (Boot 2.4+): spring.profiles.group.production: prod, monitoring, security — activate 1 group bật cả cụm.
Lưu ý: secret không để trong application-prod.yml trong repo → dùng env var hoặc secret manager.