Daily Notebook

[TIL] Spring boot - Location of application.yml

by 배부른코딩로그

스프링부트 스타터를 통해 프로젝트를 간편하게 생성하면, application.properties 혹은 application.yml 파일이 생성되어 있는 것을 볼 수 있다. 어플리케이션 실행 시, 스프링 부트가 자동적으로 이 설정 파일을 읽어드린다. 

 

application.yml이란?

스프링부트에서 서비스에 필요한 여러가지 설정 정보들을 파일 형태로 관리하기 위한 파일이다. 여기서, .yml은 .properties 확장자보다 조금 더 관리하기 쉽도록 만들어진 새로운 포맷이다.

 

application.yml은!

  • Spring boot 어플리케이션에 대한 기본 설정이 담겨있는 파일.
  • *.yml, *.properties 등 두 가지 형태 지원.
  • Default directory는 src/main/resources/ 에 위치.
  • Naming rule은 application-{profile}.yml 혹은 application-{profile}.properties 등을 생성하면 해당 설정 파일을 읽음.
  • application.yml의 profile정보를 기입하거나 Java Runtime시 profile정보를 주면 해당 파일만 읽어 실행.
    1. application.yml profile 설정 예제.
    2. java runtime시 profile 설정 예제.

 

application.yml 파일의 위치 변경하기

기본 설정의 application의 파일은 src/main/resources에 위치하지만, 설정이 변경될 때마다 *.jar파일 생성을 위해 다시 빌드를 해줘야하는 불편함이 생긴다. 이를 해결하기 위해서 아래와 같은 작업이 필요하다.

  • *.jar가 존재하는 위치나 프로젝트 최상단에 config/ 디렉토리에 application.yml 설정 파일 생성.
  • 아래의 구조는 config/{profile}/이 존재하는 이유는 배포 설정에서 해당 경로를 지정해두었기 때문에 가능!

 

@Ref 참고
『 spring boot가 지원하는 application 파일을 읽는 우선순위와 위치에 대한 가이드 』
Spring Boot Features(https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config)

 

Spring Boot Features

Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest

docs.spring.io

Spring boot의 properties 설정 파일의 위치 (mj-youn.github.io)

 

 

 

- 2021.05.13(목) TIL end -

반응형

블로그의 정보

배부른코딩로그

배부른코딩로그

활동하기