목차
- Spring Cloud Config: 소개와 예제
- Spring Cloud Config: Spring Cloud Bus 예제
- Spring Cloud Config: Git Webhook을 이용한 자동 갱신
- Spring Cloud Config: Spring Boot 2.4 버전에서의 변경사항
Spring Boot 2.4
스프링 부트 2.4 버전에서 Spring Cloud Config Client 관련 설정이 조금 변경되었다.
더 이상 bootstrap.yml
(또는 properties 파일)을 사용하지 않는다. 이 파일은 스프링 부트 애플리케이션이 구동될 때 application.yml
보다 먼저 로드되어, Cloud config 서버에서 정의된 설정값들을 읽기 위해 사용했었다.
스프링 부트 2.4 버전에서는 spring.config.import
속성을 통해 설정값을 가져오게 변경되었다. 이제 application.yml
에 아래와 같이 정의하면 된다.
spring:
config:
import: "optional:configserver:"
위와 같이 선언하면, 기본적으로 http://localhost:8888
에 위치한 Cloud config 서버 연결을 시도한다. optional:
접두사를 제거하면 Cloud config 서버에 연결할 수 없게 되는 경우 클라이언트는 구동되지 않는다.
서버 URL을 변경하려면 아래와 같이 선언하면 된다. spring.cloud.config.uri
에도 설정할 수 있으나, import
속성에 설정된 값이 더 우선시된다.
spring:
config:
import: "optional:configserver:http://myconfigserver.com/"
아래와 같이 name
과 profile
을 지정할 수도 있다. 예를 들어, config의 이름이 “my-config”, profile이 “dev”라면 아래와 같이 선언하면 된다.
spring:
config:
import: "optional:configserver:http://myconfigserver.com/"
cloud:
config:
name: my-config
profile: dev
기타 참고: Spring Cloud와 Spring Boot의 버전 매핑
아래 표를 참고하여 Spring Cloud와 Boot의 버전을 맞추어 구성하면 된다.
Spring Cloud 버전 | Spring Boot 버전 |
---|---|
2020.0.x (일명 Ilford) | 2.4.x |
Hoxton | 2.2.x, 2.3.x (SR5로 시작하는 버전과) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
기타 참고: actuator 관련 변경사항
이번 글을 정리하면서 기존 코드를 테스트해보니, Spring Cloud Bus 관련 actuator
엔드 포인트가 변경된 것 같다. bus-env
는 busenv
로 변경되었고, bus-refresh
는 busrefresh
로 변경되었다.
아래 커밋에서 변경된 것 같다.