spring boot properties working with multi-document files, activation properties
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.external-config.files
properties를 여러개 나눠놓고 환경별 지정하는 것은 익히 사용하던 방법인데, 최근에 알게된 내용을 정리한다.
multi module로 나뉘어진 프로젝트에서 application.properties를 template처럼 하나 만들어 놓고, active profile 마다 주입되서 동작할 수 있도록 가능하다는 것이다.
/web <– 실제 운영하기 위한 module
-> application-local.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/membership
username: root
password: root
web -> build.gradle.kts
dependencies {
implementation(project(":mysql"))
...
}
/mysql <– datasource 관련 module
-> application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${spring.datasource.url}
username: ${spring.datasource.username}
password: ${spring.datasource.root}
jpa:
hibernate:
ddl-auto: validate
show-sql: true
이런 형태로 구성할 경우 profile에 맞춰서 mysql의 application.yml의 properties에 변수들이 주입되어 관리할 수 있다.
환경 변수별로 여러개를 작성하지 않아도 관리가 편리하게 할 수 있다는 것을 알게되어 남겨놓는다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.