본문 바로가기
SpringBoot

Spring profile 적용

by ByteBridge 2017. 6. 9.
반응형


스프링을 사용하여 개발 할 경우 개발/테스트/운영 까지 단계에서 환경 설정들이 각각 다를 수 있다.

그중의 한 예로 데이터베이스를 들수 있다.

개발 디비 ,운영디비 ,테스트 디비 들의 정보들을 하나의 프로퍼티로 관리하다보면 많은 반복 작업이 있을 수 있다.

이러한 문제점들을 각 환경에 맞는 프로파일설정을 통하여 해결 하도록 한다.(완전한 해결책은 아님)

개발 환경은 intelliJ를 사용한다는 가정

아래 와 같이 패키지 안에 각각 디플로이 디렉토리를 생성하고 각각의 환경에 맞는 프로퍼티 설정을 해준다.



메이븐 설정파일인 pom.xml 에서 아래 와 같이 각 환경 설정 프로퍼티 파일을 추가 해준다.

<profiles>
<profile>
<id>dev</id>
<properties>
<deployment>dev</deployment>
</properties>
</profile>
<profile>
<id>local</id>
<properties>
<deployment>local</deployment>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<deployment>test</deployment>
</properties>
</profile>
<profile>
<id>op</id>
<properties>
<deployment>op</deployment>
</properties>
</profile>
</profiles>

각 프로파일 설정들은 디플로이먼트에 있는 설정 파일들과 일치하도록 해준다.

해당 프로파일들의패스를 인식 할 수있도록 pom.xml에 아래와같이 설정 해준다.



개발 환경에서 사용할 경우 IntelliJ 에서 아래와 같이 사용 할 수있다.

현재 로컬 환경에서의 프로퍼티 설정을 선택 한 후 해당 환경 설정을 사용하도록 한다.

* 만약 프로파일 설정이 동일할 경우에는 ~/.m2/setting.xml 파일에 프로파일을 설정하게 되면 프로젝트를 생성할때마다 귀찮게 프로파일을 설정 할 필요가 없다.


사용법

로컬 사용법:

Maven Projects -> Profiles -> 사용하려는 프로파일 체크

로컬에서 터미널 을 사용시 

빌드 -> mvn clean install -P { local /dev / op / test }

배포 환경:

gitlab + jenkins 를 사용하는 환경 이므로 아래와 같이 빌드를 적용한다.

(jenkins 에는 maven 이 설치 되었다고 가정)

clean install -P { local / dev / op / test }











반응형

'SpringBoot' 카테고리의 다른 글

Spirng Vaadin Helloworld  (0) 2017.06.21
PersistentObjectException: detached entity passed to persist  (0) 2017.06.15
Java8 Stream 사용  (0) 2017.05.24
Java8 stream - list compare  (0) 2017.03.27
java8-stream  (0) 2016.10.13