Summary
- Spring의 환경별 설정과 관련된 Profile에 대해 알아본다.
Environment
- Profile 과 Property를 다루는 인터페이스.
public interface ApplicationContext extends EnvironmentCapable {
}
public interface EnvironmentCapable {
Environment getEnvironment();
}
Profile 이란?
-
애플리케이션을 각기 다른 환경으로 세팅하며
원하는 환경으로 선택해 실행할 수 있는 기능. -
업무 환경에서 다양한 개발 환경별 설정이 필요하다.
test, alpha, beta, real..
Profile 설정
여러가지 방법이 있는데 대표적인 몇가지만 알아보겠다.
IDE - Active profiles 설정
Property 설정
1) IDE - Active profiles 설정
2) Property 설정 - VM options
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를 주입 받을 수 없다.