포스트

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 라이센스를 따릅니다.