Hello

spring application.properties(.yml) 로드 순서 본문

spring

spring application.properties(.yml) 로드 순서

nari0_0 2021. 4. 12. 22:56
728x90

spring boot properties 설정 관련된 내용을 새로 알게되어 정리하고자 글을쓴다.

 

 

application.properties
application-dev.properties

spring boot는 profile properties 파일을 우선으로 로드하고있다.

spring.active.profile 속성을 통해 읽고자 하는 프로파일을 설정할 수 있습니다.

spring.active.profile=dev 속성을 지정한다면,

위와 같은 파일을 가질 경우 application-dev.properties -> application.properties 순으로 파일을 읽어 낸다.

위의 설정이 아래와 같이 값을 가지고 있다면 있다면,

  1. dev.properties 설정을 읽는다.
  2. 우선순위는 {profile}.properties가 높으므로 spring.datasource.username 값은 testUser이 된다.
  3. spring.datasource.url은 dev에 작성되어 있지 않으므로 application.properties의 값을 읽는다.

- application.properties

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=test

-application-dev.properties

spring.datasource.username=testUser
spring.datasource.password=test1234

spring.active.profile 설정을 생략하는 경우 application.properties파일만 읽게된다.

application-default

application.properties
application-default.properties
application-dev.properties

위의 파일을 가질 경우 spring.active.profile 을 생략한 경우 우선순위

application-default.properties -> application.properties

 

공식 사이트의 설명에는 spring.active.profile 생략하는 경우 application-default가 있다면 파일 로드시 우선한다 고 명시되어 있습니다.

 

그래서 로컬 개발의 경우 application-default.properties 파일을 사용해 필요한 값을 설정하고 spring.active.profile을 생략해 사용합니다.

application.properties에 공통으로 필요한 부분을 작성해두고 스테이지 별 설정은 application-default에 작성합니다.

 

 

참조

2.3.2

docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

 

728x90