Spring Cloud Config: Spring Boot 2.4 버전에서의 변경사항

스프링 부트 2.4 버전에서 적용된 Spring Cloud Config 관련 변경사항

#spring #springcloud


목차


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/"

아래와 같이 nameprofile을 지정할 수도 있다. 예를 들어, 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-envbusenv로 변경되었고, bus-refreshbusrefresh로 변경되었다.

아래 커밋에서 변경된 것 같다.





댓글을 남기시려면 Github 로그인을 해주세요 :D