Skill/spring

spring-cloud-starter-bootstrap의 역할

진열사랑 2025. 5. 8. 11:35

spring-cloud-starter-bootstrap의 역할은 Spring Cloud Config와 같은 외부 설정 소스를 애플리케이션이 시작될 때 가장 먼저 로드할 수 있도록 도와주는 기능을 추가하는 것입니다. 구체적으로 설명하면 다음과 같습니다:


✅ 주요 역할

1. bootstrap.yml 또는 bootstrap.properties 파일 인식

  • Spring Boot 기본 설정(application.yml)보다 먼저 로드되는 bootstrap.yml 파일을 사용할 수 있게 해줍니다.
  • 외부 설정 서버(Spring Cloud Config 등)의 정보를 bootstrap.yml에 넣어야 하는 이유가 여기에 있습니다.

2. Spring Cloud Config 서버와의 연동 지원

  • Config Server로부터 설정을 불러오는 기능은 이 스타터에 포함된 의존성 (spring-cloud-context, spring-cloud-config-client)에 의해 가능해집니다.
  • spring.application.name, spring.cloud.config.uri 같은 설정들이 초기 단계에 적용됩니다.

3. 환경 설정의 우선순위 관리

  • Spring Boot의 EnvironmentPostProcessor를 사용하여 부트스트랩 단계에서 외부 설정을 Spring Environment에 주입합니다.
  • 결과적으로 나중에 로드되는 application.yml보다 우선 적용됩니다.

📌 사용 예시 (bootstrap.yml)

 
spring:
  application:
    name: my-service
  cloud:
    config:
      uri: http://localhost:8888
      failFast: true

⚠️ 참고: Spring Cloud 2020 이후 버전에서는

  • bootstrap.yml은 더 이상 필수가 아니며, config.import 구문을 사용하는 방식으로 변경되었습니다.
  • 예:
  • yaml
    복사편집
    spring: config: import: configserver:http://localhost:8888

따라서 Spring Cloud 2020.x 이상을 사용하는 경우 spring-cloud-starter-bootstrap 없이도 외부 설정을 가져올 수 있습니다.