반응형

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

 

 

반응형
BE_성하