profile은 애플리케이션의 설정을 분리하여 특정 프로파일에 필요한 환경설정을 제공할 수 있습니다.
@Profile 어노테이션을 통해 해당 클래스가 어떤 profile에 적용될지 가리킬 수 있습니다.
- 어떤 프로파일을 활성화할지 명시할 수 있습니다.
- property : spring.profiles.active
- command line args : --spring.profiles.active
- 기본 프로파일을 명시할 수 있습니다.
- property : spring.profiles.default
- 프로파일 활성화 조건을 명시할 수 있습니다.
- property : spring.config.activate.on-profile
1. Adding Active Profiles
- spring.profiles.active 프로퍼티는 PropertySource 순서를 따릅니다.
- 즉 command line args를 사용하면 오버라이딩 됩니다.
include property
- 활성 프로필을 추가할 때 사용하는 프로퍼티
- 활성화된 프로필 외에도 추가 프로필을 활성화할 수 있습니다.
- 구성 프로필을 유연하게 관리하고 조직할 수 있도록 돕습니다.
- 제한사항
- 프로필 특정 문서나 activate.on-profile에 의해 활성화된 문서에서 사용할 수 없습니다.
- SpringApplication의 setAdditionalProfiles() 메서드를 사용하여 추가 프로필을 설정할 수 있습니다.
2. Profile Groups
- 프로필 그룹 기능은 세분화된 프로필을 논리적 그룹으로 묶어서 관리할 수 있게 해줍니다.
spring.profiles.group.production[0]=proddb
spring.profiles.group.production[1]=prodmq
- --spring.profile.active=production을 사용하면 production, proddb, prodmq 프로필이 한번에 활성화됩니다.
3. Programmatically Setting Profiles
- SpringApplication.setAdditionalProfiles(…) 메서드를 호출하여 프로그래밍 방식으로 활성 프로필을 설정할 수 있습니다.
- ConfigurableEnvironment 인터페이스를 사용하여 프로필을 활성화할 수 있습니다.
4. Profile-specific Configuration Files
- config data 및 @ConfigurationProperties를 통해 참조된 파일은 특정 프로필 활성화 조건에 맞추어 적절한 파일이 제공됩니다.
참고
'Spring > Spring Boot' 카테고리의 다른 글
[Spring Boot] 2-8. Core Features: Test (2) | 2023.10.11 |
---|---|
[Spring Boot] 2-6. Core Features: JSON (0) | 2023.10.09 |
[Spring Boot] 2-2. Core Features: Externalized Configuration (2) | 2023.10.09 |
[Spring Boot] 2-1. Core Features: SpringApplication 클래스 (0) | 2023.10.08 |
[Spring Boot] 1-2. Spring Boot 사용하기 (1) | 2023.10.07 |