개발후 배포시 war로 압축해서 배포하는 그때
서버환경(개발/운영)에 따라서 DB접근 정보나 기타 cfg 설정이 다른 경우가 있다
그런 경우 PropertyPlaceholderConfigurer등 설정 정보를 다르게 보게 해야되는 데
구글링 해보니까 아래 Stackoverflow 몇가지를 제시하고있다.
그중에 괜찮다고 생각되는 두가지 방안
1. 아래 방법처림 배포될 서버에 예상해서 설정해서 여러개로 구성하는 방법
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:your-production-config.properties</value> <value>file:C:/Users/${user.name}/test-application.properties</value> </list> </property> <property name="ignoreUnresolvablePlaceholders" value="true"/> <property name="ignoreResourceNotFound" value="true"/> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/> </bean>
2. ${catalina.home} 변수 이용한 Tomcat 디렉토리의 conf에 설정을 따로 구성해두는 방안
<context:property-placeholder location="file:${catalina.home}/conf/myFirst.properties" ignore-unresolvable="true" /> <context:property-placeholder location="classpath:second.properties" ignore-unresolvable="true" /> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>file:${catalina.home}/conf/dbpool.properties</value> </property> </bean>
개발환경에서 한개 서버에 버젼에 따라서 여러 톰캣을 띄워야 할 경우에는 2번 방법이 괜찮은 것 같다.