Woopii Vyeolog

[Spring] 각기 다른 환경의 property구성 및 적용 본문

Spring Framework

[Spring] 각기 다른 환경의 property구성 및 적용

WooPii 2021. 2. 14. 23:25

실제 프로젝트에서는 여러 개발 환경이 존재한다.

 

예를 들어 개발 DB가 따로 있을 것이고, 운영 DB가 따로 있을 것이다.

 

그렇기 때문에 property의 설정값들도 여러개 존재 할 수 있다.

 

application.yml에서는 '---' 기준으로 설정을 나눌 수 있다.

(각 환경은 spring.profiles 속성에서 이름을 정의한다.)

//기본포트 8080에 local환경은 포트8081 dev환경은 포트 8082 세팅
server:
	port: 8080
---
spring: 
	profiles: local
server:
	port: 8081
---
spring: 
	profiles: dev
server:
	port: 8082

 위외 같이 하나의 application.yml에서 모든 profiles를 설정하면 가독성이 떨어진다.

 

.yml을 여러개를 만듦으로서 property파일을 관리 할 수 있다.

 

application-{profiles}.yml을 만들고 application.yml에서 불러올 수 있도록 설정할 수 있다.

 

예를 들어 local 프로파일 값으로 어플리케이션을 실행하면, application-local.yml 파일을 읽어서 환경이 구성된다.

 

이때의 적용 우선순위는 application-local.yml 이 우선 적용되고, application.yml설정이 그다음에 적용된다.

 

프로파일일 적용법은 application.yml에서 불러올 프로파일을 설정하면 된다.

 

//application.yml파일 설정으로 local이란 이름의 profiles 선택 
spring:
	profiles:
    		active: local

 

만약 war, jar빌드 후에 런타임 시 profiles을 적용시키고자 한다면,

아래와 같이 실행 할 수 있다.

java -Dspring.profiles.active=local -jar (war, jar파일)
Comments