@Configuration
@Profile("test")
public class TestConfiguration{
@Bean
public BookRepository bookRepository(){
return new TestBookRepository();
}
}
위 코드는 스프링 프로필이 test일 시 , @Bean 어노테이션이 붙은 bookRepository 빈이 컨테이너에 등록이 된다는 것을 뜻한다.
그 다음 JVM의 옵션에 해당 프로파일을 지정하는 옵션을 설정한다.
-Dspring.profiles.active="test"
또는
#application.properties 파일에서
spring.profiles.active=test
참고로 설정파일에 직접 명시하지 않아도 POJO 클래스에 @Profile 어노테이션을 붙이면 위와 같이 test 프로필 환경에서 등록되는 스프링 빈을 구현할 수 있다.
@Repository
@Profile("test")
public class TestBookRepository implements BookRepository{}
@Profile 어노테이션에서 !와 같은 NOT 표현식이나 &, |과 같은 논리연산자도 쓸 수 있다.
@Repository
@Profile("!prod | saelobi")
public class TestBookRepository implements BookRepository{}