개발환경에 맞는 Spring Profile 설정

 

개발환경에 맞는 Spring Profile 설정하기

개발을 하다 보면 데이터베이스 설정, 파일 위치설정 등 환경에 따라 설정이 다른 경우 config파일을 여러 개 사용할 때가 있다.

  1. local_set.config : 로컬환경
  2. dev_set.config : 테스트서버환경
  3. prod_set.config : 배포서버환경

    각 파일을 생성하고 환경에 따라 다르게 읽어 들여서 각각 설정을 해줄 것이다.

이클립스에서 tomcat인 경우 설정

Image Alt 텍스트

Servers에 뜨는 tomcat을 더블클릭하면 위와 같은 화면이 뜬다.
Open launch configuration 을 클릭한다.

Image Alt 텍스트

-Dspring.profiles.active=local

Arguments 탭을 클릭한 후 VM arguments 부분에 환경에 맞게 추가해준다.

  • 로컬환경설정인 경우 -Dspring.profiles.active=local
  • 테스트서버환경인 경우 -Dspring.profiles.active=dev
  • 배포서버환경인 경우 -Dspring.profiles.active=prod

tomcat인 경우 설정 ( 이클립스에서 돌리면 위에 설정만 해주면된다.)

Tomcat > bin > catalina.bat 파일에 Image Alt 텍스트

set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=dev"

위 내용을 환경에 맞게 추가해준다. </b>

  • 로컬환경설정인 경우 set “JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=local”
  • 테스트서버환경인 경우 set “JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=dev”
  • 배포서버환경인 경우 set “JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=prod”

xml에서의 사용

<bean id="egov.propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="locations">
		<list>
		<value>/WEB-INF/config/setting/#{systemProperties['spring.profiles.active']}_set.config</value>
		</list>
	</property>
</bean>

#{systemProperties[‘spring.profiles.active’]}로 사용한다.

JAVA에서의 사용

 String profile = System.getProperty("spring.profiles.active");

 propertyFile = new File(BASE_PATH, "/WEB-INF/config/setting/"+profile+"_set.config");

System.getProperty(“spring.profiles.active”)로 불러온다