Spring에서 application.yml
혹은 application.properties
파일은 설정과 관련된 환경변수를 관리하기 위한 파일입니다.
당연하게도, 개발 환경에 따라 환경 변수는 달라지기 때문에 그것을 구분지어 사용할 수 있다면 편리할텐데요.. 이것을 어떻게 할 수 있을까요?
resources 폴더 내부에 아래와 같이 네 개의 yml파일을 생성합니다.
# application.yml
---
spring:
profiles:
active: prod
---
spring:
profiles:
active: dev
---
spring:
profiles:
active: local
위와 같이, application.yml에 설정을하고 실행을 할 때 spring.profiles.active에 알맞는 값을 주게되면 Spring이 그 값을 인식하여 적절한 yml을 가져와서 실행하게 됩니다.
build
./gradle build
실행
java -jar -Dspring.profiles.active=dev *.jar
위와 같이 JVM 옵션을 통해 어떤 yml을 사용할지 실행시에 명시를하면 됩니다.
따로 active 변수를 설정하지 않게 되면, application.yml 제일 아래에 있는 spring.profiles.active를 가져오게 되는 것 같습니다.