Spring Boot Profile 설정

Spring Boot 또는 Spring MVC를 통한 Profile 설정 방법은 

다음과 같이 대표적으로 3가지 방법을 제공한다.

  • application.yml
  • application.properties
  • java option

 

application.yml

yml 문법을 사용하고 각 profile 분리는

---

이렇게 3개의 하이픈을 사용함으로써 profile section을 분리한다.

application-<<profilename>>.yml

방식으로 분리를 해도 괜찮다.

Spring 2.4이후 기준으로 profile을 설정한 파일이다.

spring:
  profiles:
    active: dev

---
spring:
  data:
    mongodb:
      host: localhost
      port: 27018
      database: local
  config:
    activate:
      on-profile: dev
---
spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: local
  config:
    activate:
      on-profile: nonprod
---
spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: local
  config:
    activate:
      on-profile: prod

 

어떤 profile을 선택할지 select하는 section이다

spring:
  profiles:
    active: dev

active뒤에 있는 값이 select할 profile 명이 된다.

dev에 연결한 profile은 아래와 같이 section설정을 진행하면 된다.

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

파일을 분리하려면 아래와 같이 분리 가능하다.

물로 이때 application.yml의 active를 nonprod로 변경해 줘야 한다.

spring:
  profiles:
    active: nonprod

 

application.properties

script 형식의 파일 포멧을 사용한다.

spring.profiles.active = dev1
#---
config.activate.on-profile = dev
spring.data.mongodb.host = localhost
spring.data.mongodb.port = 27017
spring.data.mongodb.database = local

조금 당황스럽긴 한데 상위와 같이 실행하면 on-profile로 Section이 나누어지지 않는다

spring boot 2.4부터는 multi delimeter가 활용 가능한 것으로 아는데 사용방법을 조금더 봐야 할 것 같다.

https://www.baeldung.com/spring-profiles#3-multi-document-files

tutorial source로 해봐도 잘 안되는데... 더 해보고 정리 하겠다.

 

Jar Option 사용

Gradle을 사용한다면 bootJar를 이용해서 Jar를 만들어줘야 한다.

그냥 jar를 이용하게 되면 Dependency가 없는 상태에서 릴리즈 됨으로 단독 실행이 불가능 하다.

java -jar <<run jar file name>>.jar

java -jar -Dspring.profiles.active=<<profilename>> <<run jar file name>>.jar

728x90
반응형