어플리케이션을 실행하면 다음 위치에 있는 application.properties
설정 파일을 읽어들인다.
위에서부터 순서대로 우선 순위가 높게 설정되어 있어 여러 설정 파일이 존재할 때는 순위가 우선인 설정값으로 덮어 쓰인다.
설정 파일은 프로파일 (profile)이라는 단위로 별도의 설정을 가진다. 개발 환경, 프로덕션 환경 등 환경별로 설정을 나누고 싶은 경우에는 application-{profile}.properties
의 명명 규칙으로 설정 파일을 만든다.
설정 파일의 작성 형식은 YAML 로도 가능하다.
스프링 부트에서는 명령줄 인수나 환경 변수 등 다양한 외부 설정 파일을 사용할 수 있다. 설정이 활성화되면 우선 순위에 따라 순위가 높은 설정 방법의 값이 사용된다.
환경 변수로 설정값을 전달하는 경우 대문자의 스네이크 케이스로 지정한다.
# 환경변수로 설정값 전달하기
$ SPRING_APPLICATION_JASON='{"acme":{"name":"test"}}' java -jar
myapp.jar
# 시스템 속성으로 설정값 전달하기
$ java -Dspring.application.json='{"name":"test"}' -jar myapp.jar
# 명령줄 인수로 설정값 전달하기
$ java -jar myapp.jar --spring.application.json='{"name":"test"}'
YAML은 구성 파일 작성에 자주 사용되는 데이터 직렬화 언어이다. Yet Another Markup Language 또는 YAML Ain't Markup Language (재귀 약어)로 생각하는 사람도 있다. 후자는 YAML이 문서가 아닌 데이터용임을 강조하는 말이다.
YAML은 사람이 읽을 수 있고, 이해하기 쉬워 프로그래밍 언어 중에서도 인기가 높다. 또한 다른 프로그래밍 언어와 함께 사용할 수도 있다. 쿠버네티스에서도 API를 전송할땐 JSON 규격도 사용되지만 일반적으로 yaml을 권장하고 있다.
YAML은 JSON의 상위 집합이므로 YAML에서 JSON 파일을 사용할 수 있다.
Python 스타일의 들여쓰기 방법으로 중첩을 표시한다. 탭 문자는 허용되지 않으므로 공백 (2칸 추천)을 대신 사용한다. 중괄호, 대괄호 등 통상적인 형식 기호는 없다.
.yml
또는 .yaml
이라는 확장자를 사용한다.