Java
[Java] Maven profile로 실행환경 분리하기
Shonir00ng
2022. 7. 14. 09:45
resources-dev / resources-prod 폴더 생성 후 각각의 properties 폴더에 datasource.properties.xml 작성
datasource.dbType=oracle
datasource.driverClassName=oracle.jdbc.driver.OracleDriver
# dev Server
# 내부망
datasource.url=jdbc:oracle:thin:@192.168.0.XXX:1521:XXXX
datasource.username=XXXX_USER
datasource.pasword=XXXX_USER
context-datasource.xml
- propertyPlaceholderConfigurer : 외부의 프로퍼티에 저장된 정보를 스프링 설정 파일에서 사용
- <list> : 한 개 이상의 프로퍼티 파일을 지정할 시 사용
<!-- propertyConfigurer 추가 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/properties/datasource.properties</value>
</list>
</property>
</bean>
<!-- 기존 oracle ojdbc 라이브러리 설정 수정 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${datasource.driverClassName}"/>
<property name="url" value="${datasource.url}" />
<property name="username" value="${datasource.username}"/>
<property name="password" value="${datasource.password}"/>
</bean>
pom.xml
<!-- 서버별 패키징을 위한 설정 (1) -->
<build>
<resources>
<resource>
<!-- 공통 -->
<directory>src/main/resources</directory>
</resource>
<resource>
<!-- dev/prod -->
<directory>src/main/resources-${env}</directory>
</resource>
</resources>
</build>
<!-- 서버별 패키징을 위한 설정 (2) -->
<profiles>
<profile>
<id>dev</id>
<!-- 기본 프로파일 값 (프로파일 값이 없을 때) -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
eclipse 실행 시, 프로젝트에서 마우스 오른쪽 버튼 → Maven → Select Maven Profiles