Spring Boot 2.4를 기준으로 환경별 프로필 설정하는 방법이 바뀌었다.
Spring Boot 2.4 이전
spring:
profiles: dev #활성 프로필 설정
profiles.include:
- devdb # 추가할 프로필 설정
---
spring:
profiles: local
---
spring:
profiles: dev
---
spring:
profiles: common
---
spring:
profiles: prod
👉 구분자 '---'를 사용해서 여러 프로필을 나누고, 각 파일마다 spring.profiles로 프로필을 설정한다.
application.yml에서 spring.profiles로 활성 프로필을 설정하고,
추가할 프로필이 있다면 spring.profiles.include로 포함하여 활성했다.
※ YAML에서의 구분자 '---' 사용
공통적으로 application.yml에서는 구분자 '---'를 사용하여 설정 파일 여러개를
하나의 파일에서 사용할 수 있다.
👉 위의 예시를 구분자 '---' 없이 사용하려면 설정 파일을
application-local.yml
application-dev.yml
application-common.yml
application-prod.yml
이렇게 나눈 후에, application.yml에 다음과 같이 설정하면 된다.
(dev와 common프로필을 사용하고 싶을 때 -> include)
spring:
profiles: dev
profiles.include:
- common
하지만, 이러한 경우에 설정 파일이 총 4개가 더 늘어나서 더 복잡해진다.
따라서 구분자 '---'를 사용하여 프로필을 application.yml에서 나눠서 직접 사용한다.
★Spring Boot 2.4 이후
spring:
profiles:
group:
"local": "local, common"
"dev": "dev, common"
"prod": "prod, common"
active: dev #활성 프로필 설정
---
spring:
config:
activate:
on-profile: "local"
---
spring:
config:
activate:
on-profile: "dev"
---
spring:
config:
activate:
on-profile: "devdb"
---
spring:
config:
activate:
on-profile: "prod"
👉 구분자 '---'를 사용해서 여러 프로필을 나누고,
각 파일마다 spring.config.activate.on-profile로 프로필을 설정한다.
application.yml에서 spring.profiles.group을 사용해서 프로필 그룹을 먼저 생성한 후에,
spring.profiles.active로 생성한 그룹 프로필을 활성화한다.
💡 하나의 프로필에 include로 추가하는 것이 아닌, 그룹 프로필을 만들어서 그룹 프로필을 활성화하는 방식
💡 프로필 생성 : spring.profiles -> spring.config.activate.on-profile
'Spring' 카테고리의 다른 글
[Spring] 스프링 동시성 처리 방법(feat. 비관적 락, 낙관적 락, 네임드 락) (4) | 2023.11.21 |
---|---|
[Spring] SpringBoot의 Tomcat 설정 알아보기 (feat. Thread, Thread Pool) (4) | 2023.09.14 |
[Spring] 스프링 이벤트를 사용하여 도메인 의존성 분리하기 (2) | 2023.07.30 |
[Spring] 테스트 시 DB 데이터 초기화 Trouble Shooting (0) | 2023.05.28 |
[Spring] 스프링 HTTP API 요청 & 응답 시 역직렬화 직렬화 원리 (4) | 2023.04.18 |