복붙노트

[SPRING] 전체 ApplicationContext를 다시로드하지 않고 런타임시 스프링 부트 응용 프로그램의 구성을 업데이트하는 방법

SPRING

전체 ApplicationContext를 다시로드하지 않고 런타임시 스프링 부트 응용 프로그램의 구성을 업데이트하는 방법

전체 애플리케이션을 다시 시작하지 않고 스프링 부트 애플리케이션에서 외부화 된 구성을 어떻게 동적으로 업데이트 / 재로드 할 수 있는지 알아 내려고합니다.

대부분의 조언은 외부화 된 구성을 변경 한 후 ApplicationContext를 다시로드하는 작업을 포함하지만 전체 응용 프로그램을 다시 시작하는 것과 동일하므로이 작업이 모두 유용하지는 않습니다.

SpringBoot 레퍼런스 문서를 읽었을 때, 23.7 Typesafe Configuration Properties 장을 발견했다.

올바르게 이해한다면 애플리케이션 (외부화 된) 구성 값을 속성으로 유지하는 간단한 POJO 클래스를 정의 할 수 있습니다.

이론적으로 적어도이 스키마는 빈을 한 번만 필수 구성 POJO에 바인드하고 구성을 변경하면 POJO의 값을 업데이트하는 데 사용될 수 있습니다. 구성 요소는 POJO에서 게터에 액세스 할 때 다음에 변경 사항을 쉽게 선택할 수 있습니다.

그러나, 나는 아직 이런 유형의 행동을 가능하게하는 방법을 알아낼 수 없었다. 관련 구성이 변경되었을 때 @ConfigurationProperties로 주석 된 구성 요소를 동적으로 업데이트하는 방법이 있습니까?

해결법

  1. ==============================

    1.Spring Cloud에서 제공하는 @RefreshScope를 찾고있는 것 같습니다. Spring Cloud 문서에서 :

    Spring Cloud에서 제공하는 @RefreshScope를 찾고있는 것 같습니다. Spring Cloud 문서에서 :

  2. from https://stackoverflow.com/questions/33365874/how-to-update-configuration-of-springboot-application-at-runtime-without-reloadi by cc-by-sa and MIT license