본문 바로가기
학습/Spring

[spring] 스프링의 @Configuration과 @Profile

by KKambi 2020. 4. 15.

@Configuration

  • @Bean을 통해 빈을 등록할 수 있는 자바 클래스
  • @Component를 포함하고 있기 때문에, Component Scan의 대상

@Profile

  • 특정한 프로파일(환경)에서만 해당 설정이 동작

  • 프로파일에 따라 빈 설정이 달라짐

  • ex) @Profile("production") + @Configuration -> 해당 프로파일에서만 해당 빈 설정 사용

    @Profile("production")
    @Configuration
    public class ApplicationProductionConfig {
    
      @Bean
      public MyBean getMyBean(){
          return new MyBean();
      }
    }

프로파일 활성화

properties 파일 생성 X

  • 프로퍼티 파일에 spring.profiles.active=production 추가
  • 프로퍼티 파일에 적용되므로, 프로파일 간 우선순위에 유의
    //application.properties
    spring.profiles.active=production

프로파일용 프로퍼티 파일 생성

properties 파일 생성 O

  • application-production.properties
  • application-test.properties
  • 기본 application.properties보다 우선순위가 높음!

다수의 프로파일을 적용하고 싶을 때

properties 파일 생성 X

  • spring.profiles.include=proddb
  • 해당 프로퍼티 파일이 로딩될 때, proddb profile도 활성화
    //application.propertie
    spring.profiles.active=production
    spring.profiles.include=proddb

댓글