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
'JAVA' 카테고리의 다른 글
JavaFX Unrecognized option: --module-path (0) | 2022.02.28 |
---|---|
Spring Boot MongoDB 설정하기 (0) | 2021.06.22 |
Java의 동기화 및 Locking 기법 들 (Synchronized, ReentrantLock, Semaphore, Atomic Package, varHandle) (0) | 2021.05.31 |
javaFX java version 11이상에서 실행하기 (2) | 2021.05.28 |
Thread Demon & Join (0) | 2021.05.25 |