Iyoungman Back-end Developer

스프링 프레임워크 핵심 기술 - Environment 1부. 프로파일

2020-05-25

Summary

  • Spring의 환경별 설정과 관련된 Profile에 대해 알아본다.


Environment

  • Profile 과 Property를 다루는 인터페이스.
public interface ApplicationContext extends EnvironmentCapable {
}

public interface EnvironmentCapable {
    Environment getEnvironment();
}


Profile 이란?

  • 애플리케이션을 각기 다른 환경으로 세팅하며
    원하는 환경으로 선택해 실행할 수 있는 기능.

  • 업무 환경에서 다양한 개발 환경별 설정이 필요하다.

test, alpha, beta, real..


Profile 설정

여러가지 방법이 있는데 대표적인 몇가지만 알아보겠다.

  1. IDE - Active profiles 설정

  2. Property 설정


1) IDE - Active profiles 설정

2


2) Property 설정 - VM options

1


3) Property 설정 - application.properties 파일

spring.profiles.active=test


Profile에 따라 선별적으로 Bean 등록하기

  • @Profile 어노테이션을 이용한다.


“test”라는 Profile 환경에서만 적용되는 특정 Bean을 사용하고 싶다.

public class TestBookRepository {

}

@Configuration
@Profile("test")
public class TestConfiguration {

    @Bean
    public TestBookRepository testBookRepository() {
        return new TestBookRepository();
    }
}

@Slf4j
@Component
public class EnvironmentRunner implements ApplicationRunner {

    @Autowired
    private ApplicationContext applicationContext;

    @Autowired
    private TestBookRepository testBookRepository;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        Environment environment = applicationContext.getEnvironment();
        log.info("Profile : {}", environment.getActiveProfiles());//확인
    }
}
"Profile : test"
  • “test” Profile로 설정되어있지 않은경우, TestBookRepository를 주입 받을 수 없다.


Reference


Comments

Content