1. 개요
Spring Boot는 독단적인 프레임워크입니다. 그럼에도 불구하고 일반적으로 application.properties 와 같은 애플리케이션 구성 파일에서 자동 구성된 속성을 재정의하게 됩니다 .
그러나 Spring Cloud 애플리케이션에서는 종종 bootstrap.properties 라는 다른 구성 파일을 사용합니다 .
이 빠른 사용방법(예제)에서는 bootstrap.properties 와 application.properties 의 차이점을 설명합니다 .
2. 애플리케이션 구성 파일은 언제 사용됩니까?
애플리케이션 컨텍스트를 구성하기 위해 application.yml 또는 application.properties 를 사용 합니다 .
Spring Boot 애플리케이션이 시작되면 명시적으로 구성할 필요가 없는 애플리케이션 컨텍스트를 생성합니다. 이미 자동 구성되어 있습니다. 그러나 Spring Boot는 이러한 속성을 재정의하는 다양한 방법을 제공합니다 .
코드, 명령줄 인수, ServletConfig 초기 매개변수, ServletContext 초기 매개변수, Java 시스템 속성, 운영 체제 변수 및 애플리케이션 속성 파일에서 이러한 매개변수를 재정의할 수 있습니다.
명심해야 할 중요한 사항은 이러한 응용 프로그램 속성 파일 이 응용 프로그램 컨텍스트 속성을 재정의하는 다른 형식에 비해 우선 순위가 가장 낮다는 것 입니다.
애플리케이션 컨텍스트에서 재정의할 수 있는 속성을 그룹화하는 경향이 있습니다.
- 핵심 속성(로깅 속성, 스레드 속성)
- 통합 속성( RabbitMQ 속성, ActiveMQ 속성)
- 웹 속성( HTTP 속성, MVC 속성)
- Security 속성( LDAP 속성, OAuth2 속성)
3. Bootstrap 구성 파일은 언제 사용됩니까?
부트스트랩 컨텍스트를 구성하기 위해 bootstrap.yml 또는 bootstrap.properties 를 사용합니다 . 이렇게 하면 부트스트랩과 기본 컨텍스트에 대한 외부 구성을 멋지게 분리할 수 있습니다.
부트스트랩 컨텍스트는 외부 소스에서 구성 속성을 로드 하고 로컬 외부 구성 파일의 속성을 해독하는 역할 을 합니다.
Spring Cloud 애플리케이션이 시작되면 부트스트랩 컨텍스트 가 생성됩니다 . 가장 먼저 기억해야 할 것은 부트스트랩 컨텍스트 가 기본 애플리케이션의 상위 컨텍스트라는 것입니다.
기억해야 할 또 다른 핵심 사항은 이 두 컨텍스트 가 Spring 애플리케이션의 외부 속성 소스인 Environment 를 공유한다는 것 입니다. 응용 프로그램 컨텍스트와 달리 부트스트랩 컨텍스트는 외부 구성을 찾기 위해 다른 규칙을 사용합니다.
예를 들어 구성 파일의 소스는 파일 시스템 또는 git 저장소일 수 있습니다. 서비스는 spring-cloud-config-client 의존성을 사용하여 구성 서버에 액세스합니다.
간단히 말해서 구성 서버는 응용 프로그램 컨텍스트 구성 파일에 액세스하는 지점 입니다.
4. 빠른 예
이 예에서 부트스트랩 컨텍스트 구성 파일 은 올바른 애플리케이션 속성 파일을 로드 하도록 spring-cloud-config-client 의존성을 구성합니다.
bootstrap.properties 파일 의 예를 살펴보겠습니다 .
spring.application.name=config-client
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.username=root
spring.cloud.config.password=s3cr3t
spring.cloud.config.fail-fast=true
management.security.enabled=false
5. 결론
Spring Boot 애플리케이션과 달리 Spring Cloud 애플리케이션은 애플리케이션 컨텍스트의 상위인 부트스트랩 컨텍스트를 제공합니다. 둘 다 동일한 환경 을 공유하지만 외부 구성 파일을 찾기 위한 규칙이 다릅니다.
부트스트랩 컨텍스트는 bootstrap.properties 또는 bootstrap.yaml 파일을 검색하는 반면 애플리케이션 컨텍스트는 application.properties 또는 application.yaml 파일 을 검색합니다 .
물론 부트스트랩 컨텍스트의 구성 속성은 애플리케이션 컨텍스트의 구성 속성보다 먼저 로드됩니다.