Spring/Spring Boot

[Spring Boot] 2-3. Core Features: Profile

noahkim_ 2023. 10. 9. 02:11

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를 통해 참조된 파일은 특정 프로필 활성화 조건에 맞추어 적절한 파일이 제공됩니다.

 

 

 

참고