멀티환경구성에 대한 새로운 include

spring.profiles.include ? 엄청 익숙하지 않은가?

다중 DataSource 사용 환경구성할때 가끔씩 MySQL、Redis、MQ 등 여러 모듈들에 대한 설정이들이 길고길게 적어야 할때가 있다. 이때 우리는 include 방식으로 설정파일을 쪼갠후 다시 include 방식으로 하나로 합친다.

2.4 이전 방법

spring:
  profiles:
    active: "dev"

---
spring.profiles: "dev"
spring.profiles.include: "dev-db,dev-mq"

---
spring.profiles: "dev-db"

db: dev-db.blake.com

---
spring.profiles: "dev-mq"

mq: dev-mq.blake.com
  • spring.profiles.active: dev 는 default dev 환경설정을 활성화 한다는 뜻

  • dev 에서 include 하여 기타 설정들을 불러온다.

spring.profiles: "dev"
spring.profiles.include: "dev-db,dev-mq"

구동시 Log 확인

The following profiles are active: dev,dev-db,dev-mq

dev、dev-db、dev-mq 의 모두 활성화 되었으니 include 는 잘 된셈이다.

2.4 이후 방법

spring.profiles.group 로 설정해야 된다.

spring:
  profiles:
    active: "dev"
    group:
      "dev": "dev-db,dev-mq"
      "prod": "prod-db,prod-mq"

---
spring:
  config:
    activate:
      on-profile: "dev-db"

db: dev-db.blake.com

---
spring:
  config:
    activate:
      on-profile: "dev-mq"

mq: dev-mq.blake.com

---
spring:
  config:
    activate:
      on-profile: "prod-db"

db: prod-db.blake.com

---
spring:
  config:
    activate:
      on-profile: "prod-mq"

mq: prod-mq.blake.com

log는 아래 와 같다. defalut 설정이 dev 이니, dev-db 와 dev-mq 나온다.

The following profiles are active: dev,dev-db,dev-mq

혹시 모르니 spring.profiles.active: "prod" 로변경후 다시 구동해 보자

The following profiles are active: prod,prod-db,prod-mq

잘되는 듯 하다.

끝!

Last updated