⚡ 개요
spring boot를 사용하면서 기본적인 yml 설정 파일이 존재하고, 프로파일 설정을 하게 되면 프로파일 설정된 값이 우선으로 설정이 된다는것도 협업을 하면서 알고 있었다. 그렇다면 신규 구축 및 서로 다른 설정을 할때 우선순위가 어떻게 되는지 궁금해서 정리를 해보려고 한다.
⚡ 우선 순위 내용 정리
Spring Boot에서는 여러 개의 YAML 파일을 사용하여 애플리케이션 구성을 관리할 수 있다. 이러한 파일은 다음과 같은 우선순위를 가지고 있다.
- 기본 값 (default)
Spring Boot에는 application.yml 또는 application.properties 파일이 기본값으로 제공된다.
이 파일은 다른 구성 파일에 정의되지 않은 모든 구성 속성을 가지고 있다. - 프로파일별 값 (profile-specific)
Spring Boot은 프로파일별 YAML 파일을 로드하여 프로파일별 구성을 제공 한다.
application-{profile}.yml 또는 application-{profile}.properties와 같은 형식을 사용한다.
여기서 {profile}은 활성화할 프로파일 이름이다. - 외부 설정 파일 (external)
Spring Boot은 애플리케이션을 시작할 때 외부 YAML 파일을 로드할 수 있다.
--spring.config.name과 --spring.config.location 옵션을 사용하여 파일 이름과 위치를 지정할 수 있다. - 커맨드 라인 인자 (command line arguments)
Spring Boot은 --{property}={value}와 같은 형식의 커맨드 라인 인자를 사용하여 구성 속성을 설정할 수 있다.
예를 들어, --server.port=8080과 같은 형식을 사용하여 서버 포트를 설정할 수 있다.
위에서 나열한 순서대로 우선순위가 높아진다. 즉 1번에서 4번까지 갈수록 우선순위가 높아진다. 따라서 동일한 속성이 여러 파일에서 정의된 경우, 우선순위가 높은 파일에서 정의된 속성이 사용된다.
Intellij에서 프로파일 설정 방법
반응형
'Spring' 카테고리의 다른 글
[Spring Boot] QueryDsl Qclass 에 대한 내용 정리 (0) | 2023.04.23 |
---|---|
[Spring Boot] spring boot + mybatis 사용 방법 정리 (0) | 2023.04.15 |
[Spring Boot] 콘솔에 출력된 배너 변경하기 (0) | 2023.02.12 |
[JPA] QueryDSL에서 서브 쿼리 사용 정리 (0) | 2023.01.29 |
[Spring] SpringBoot + RabbitMQ 연동 내용 정리. (0) | 2022.10.21 |