Spring Boot 프로퍼티 우선순위 (높은 순서부터)- 명령행 인수 (Command Line Arguments)
java -jar app.jar --server.port=9000
- 자바 시스템 프로퍼티 (Java System Properties)
java -Dserver.port=9000 -jar app.jar
- OS 환경 변수 (Operating System Environment Variables)
SERVER_PORT=9000 java -jar app.jar
- Profile 별 외부 설정 파일 (application-{profile}.properties/.yml)
- 애플리케이션 디렉토리 외부의
/config 디렉토리 - 애플리케이션 디렉토리 외부
- 애플리케이션 내부의
/config 패키지 - 애플리케이션 루트
- 기본 외부 설정 파일 (application.properties/.yml)
- @PropertySource 애노테이션으로 지정한 파일
@PropertySource("classpath:custom.properties")
- 애플리케이션 기본 설정 (Default Properties)
SpringApplication.setDefaultProperties() 로 설정한 값
주요 특징- 상위 우선순위의 프로퍼티가 하위 우선순위의 프로퍼티를 오버라이드합니다.
- 동일한 프로퍼티가 여러 소스에 존재할 경우, 가장 높은 우선순위를 가진 값이 사용됩니다.
- YAML 파일과 properties 파일은 동일한 우선순위를 갖습니다.
- Profile 별 설정이 기본 설정보다 우선합니다.
이 우선순위 체계는 개발, 테스트, 스테이징, 프로덕션 등 다양한 환경에서 애플리케이션 설정을 유연하게 관리할 수 있게 해줍니다. |