Spring profile

profile 활성화 방법
 - context의 environment 오브젝트를 가져와 setActiveProfiles() -> context.refresh
rootContext.getEnvironment().setActiveProfiles(toChangeProfile);
rootContext.refresh();

 - 시스템 프로퍼티
export spring.profiles.active=dev

 - 환경변수 설정

 - JVM 파라미터
-Dspring.profiles.active=dev

 - web.xml     
root-context에 적용
<context-param> 

    <param-name>spring.profiles.active</param-name> 
    <param-value>dev</param-value> 
</context-param>
survlet-context에 적용
<init-param> 

    <param-name>spring.profiles.active</param-name> 
    <param-value>dev</param-value> 
</init-param>

-jndi 

-application context initializer or web application initializer + maven profile, filtering
 -> maven을 통해 profile 설정 -> filter를 통해 properties 값 수정 -> application context initializer를 통해 해당 properties 값 읽어서 context environment의 setActiveProfiles 수행

-junit4

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@ActiveProfiles("dev")

-maven을 통해 profile 설정 한 후 특정 properties 로딩, spring 에서 환경 변수 사용 (But Spring의 profile이 아님)

 
결론을 내려야 하는데...
application context initializer or web application initializer + maven profile, filtering 방식이 조금 좋을 것 같다.
그럼 initializer에 대해서 어떻게 구현하는지 연구 !!!

댓글

이 블로그의 인기 게시물

Spring Batch - JobParameters Default Value 만들기

Hsqldb Server 재기동 시 오류