728x90
반응형
[Spring] EnvironmentCapable - profile
profile - 빈들의 묶음(그룹)
ApplicationContext가 상속받는 인터페이스들 중 EnvironmentCapable 인터페이스는 profile 기능을 제공한다.
UseCase
1) 테스트 환경에서는 A라는 Bean을 사용하고, 배포 환경에서는 B라는 Bean을 사용하고 싶을때
2) 테스트 환경에서는 필요가 없고 배포할 때만 등록이 되면 되는 Bean의 경우
profile 정의 방법
1) @Configuration 클래스에 정의
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile("test")
public class TestConfiguration {
@Bean
public BookRepository bookRepository() {
return new TestBookRepository();
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
public class TestConfiguration {
@Bean @Profile("test")
public BookRepository bookRepository() {
return new TestBookRepository();
}
}
2) @Component 클래스에 정의
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Repository;
@Repository
@Profile("test")
public class TestBookRepository implements BookRepository {
}
profile 설정 방법
1) Active profiles 설정
2) VM options 설정
profile 표현식
1) ! (not)
2) & (and)
3) | (or)
728x90
반응형
'Programing > Spring FrameWork' 카테고리의 다른 글
[Spring] ApplicationContext - MessageSource (0) | 2021.07.27 |
---|---|
[Spring] Bean의 Scope ( 싱글톤 vs 프로토타입 ) (0) | 2021.07.22 |
[Spring] 해당 타입의 빈이 여러개인 경우 (0) | 2021.07.20 |
[Spring] Bean 주입방법 비교(xml vs Java) (0) | 2021.07.13 |
[Spring] PSA ( Portable Service Abstraction ) (0) | 2021.01.18 |