4. 외부화된 설정

Tasker_Jang·2024년 7월 29일
0

스프링 부트에서는 설정을 외부로 뺄 수 있어서 같은 애플리케이션을 서로 다른 환경으로 작업할 수 있다. 외부 설정은 자바 Properties 파일, YAML파일, 환경변수, 커맨드라인 인자 등 다양한 소스를 활용할 수 있다.

SpringApplication은 기본적으로 모든 커맨드라인 옵션인자를 property로 변환해서 스프링 Environment에 추가한다.

외부 애플리케이션 프로퍼티

스프링 부트는 애플리케이션을 시작하면서 다음 위치에서 자동으로 application.propertiesapplication.yaml 파일을 찾아 로드한다. 이 파일들은 애플리케이션 설정을 외부에서 정의할 수 있게 해주며, 스프링 부트는 여러 위치에서 설정 파일을 로드할 수 있다.

  1. 기본 위치 (classpath)
    • classpath:/
    • classpath:/config/
  2. 외부 위치
    • file:./
    • file:./config/
    • /config/ (절대 경로)

스프링 부트는 위의 위치들을 우선순위에 따라 탐색하여 설정 파일을 로드한다. 예를 들어, classpath:/에 있는 파일이 file:./에 있는 파일보다 우선순위가 높다.

또한, 특정 프로파일을 위한 설정 파일도 로드할 수 있다. 예를 들어, application-dev.properties 또는 application-dev.yaml 파일을 사용하여 "dev" 프로파일에 대한 설정을 정의할 수 있다.

이 외에도, 스프링 부트는 @PropertySource 애노테이션을 사용하여 특정 클래스에 프로퍼티 파일을 지정할 수도 있다.

다음은 설정 파일이 로드되는 순서를 요약한 것이다:

  1. classpath:/
  2. classpath:/config/
  3. file:./
  4. file:./config/
  5. /config/

이러한 위치들 중 하나에 application.properties 또는 application.yaml 파일을 두면, 스프링 부트는 애플리케이션이 시작될 때 자동으로 해당 파일들을 로드하고 설정을 적용한다.

profile
터널을 지나고 있을 뿐, 길은 여전히 열려 있다.

0개의 댓글