/multi-project-training

다중 프로젝트 구성 연습! 프로젝트

Primary LanguageJava

[spring boot] 멀티 프로젝트 프로파일 마이그레이션 전략

. multi-project-training
├── a-common
│   └── src
│       └── main
│           ├── java
│           └── resources
│               └── application-a.yml
├── b-api
│   └── src
│       └── main
│           ├── java
│           └── resources
│               └── application-b.yml
└── c-app
    └── src
        └── main
            ├── java
            └── resources
                ├── application-auth.yml
                ├── application-device.yml
                └── application.yml

위와 같은 형태를 가지는 multi-project-training 프로젝트에서 각 하위 프로젝트 a-common, b-api, c-app의 속성파일(application-*.yml)을 기준으로 애플리케이션 프로파일을 배포환경('local', 'dev', 'beta', 'major')으로 구성하기 위한 프로젝트다.

c.name: c-app
logging:
  level:
    io.honeymon.springboot.multi.app: DEBUG
spring:
  profiles:
    include:
      - a
      - b
      - auth
      - device
# 프로파일 덮어쓰기는 안된다. 궁리했던 것처럼은 안되겠지만, 아래와 같은 방법은 사용가능하다.

---
spring.profiles: local
c.name: c-app-local
spring:
  profiles:
    include:
      - a-dev
      - b-beta
      - device-beta
      - auth-beta

---
spring.profiles: dev
c.name: c-app-dev
spring:
  profiles:
    include:
      - a-dev
      - b-dev
      - device-dev
      - auth-dev

---
spring.profiles: beta
c.name: c-app-beta
spring:
  profiles:
    include:
      - a-beta
      - b-beta
      - device-beta
      - auth-beta

---
spring.profiles: major

c.name: c-app-major
spring:
  profiles:
    include:
      - a-major
      - b-major
      - device-major
      - auth-major

애플리케이션은 실행시 각 실행환경에 따라 프로파일을 활성화(spring.profiles.active)할 수 있도록 구분지을 수 있다.