본문 바로가기

Programing/Spring FrameWork

[Spring] EnvironmentCapable - profile

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
반응형