728x90
설정 파일을 각각 분리해서 관리하면 한눈에 전체가 들어오지 않는 단점이 있다.
스프링은 이런 단점을 보완하기 위해 물리적인 하나의 파일 안에서 논리적으로 영역을 구분하는 방법을 제공한다.

- 기존에는 dev 환경은 application-dev.properties , prod 환경은 prod.properties 파일이 필요했다.
- 스프링은 하나의 application.properties 파일 안에서 논리적으로 영역을 구분하는 방법을 제공한다.
- application.properties 라는 하나의 파일 안에서 논리적으로 영역을 나눌 수 있다.
- application.properties 구분 방법 #--- 또는 !--- (dash 3)
- application.yml 구분 방법 --- (dash 3)
- 그림의 오른쪽 application.properties 는 하나의 파일이지만 내부에 2개의 논리 문서로 구분되어 있다.
- dev 프로필이 활성화 되면 상위 설정 데이터가 사용된다.
- prod 프로필이 활성화 되면 하위 설정 데이터가 사용된다.
- 프로필에 따라 논리적으로 구분된 설정 데이터를 활성화 하는 방법
- spring.config.activate.on-profile 에 프로필 값 지정
설정 데이터를 하나의 파일로 통합하기
기존 내역 주석처리
application-dev.properties 주석 처리
#url=dev.db.com
#username=dev_user
#password=dev_pw
application-prod.properties 주석 처리
#url=prod.db.com
#username=prod_user
#password=prod_pw
application.properties 작성
spring.config.activate.on-profile=dev
url=dev.db.com
username=dev_user
password=dev_pw
#---
spring.config.activate.on-profile=prod
url=prod.db.com
username=prod_user
password=prod_pw
- 속성 파일 구분 기호에는 선행 공백이 없어야 하며 정확히 3개의 하이픈 문자가 있어야 한다.
- 구분 기호 바로 앞과 뒤의 줄은 같은 주석 접두사가 아니어야 한다.
- 분할 기호 위에 주석이 있다. 문서가 정상적으로 읽히지 않을 수 있다.
- 분할 기호 아래에 주석이 있다. 문서가 정상적으로 읽히지 않을 수 있다.
실행
- 커맨드 라인 옵션 인수 실행
- --spring.profiles.active=dev
- 자바 시스템 속성 실행
- -Dspring.profiles.active=dev
- Jar 실행
- ./gradlew clean build
- build/libs 로 이동
- java -Dspring.profiles.active=dev -jar external-0.0.1-SNAPSHOT.jar
- java -jar external-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
728x90
'스프링 부트(핵심 원리와 활용)' 카테고리의 다른 글
| Ch05. 외부설정과 프로필(1) - 우선순위(전체) (0) | 2023.03.15 |
|---|---|
| Ch05. 외부설정과 프로필(1) - 우선순위(설정 데이터) (0) | 2023.03.13 |
| Ch05. 외부설정과 프로필(1) - 설정 데이터(내부 파일 분리) (0) | 2023.03.12 |
| Ch05. 외부설정과 프로필(1) - 설정 데이터(외부 파일) (0) | 2023.03.12 |
| Ch05. 외부설정과 프로필(1) - 외부 설정(자바 시스템 속성) (0) | 2023.03.12 |