So aktualisieren Sie die Konfiguration der SpringBoot-Anwendung zur Laufzeit, ohne den gesamten ApplicationContext neu zu laden

Ich versuche herauszufinden, wie ich die externe Konfiguration in einer Spring Boot-Anwendung dynamisch aktualisieren / neu laden kann, ohne die gesamte Anwendung neu zu starten.

Die meisten Ratschläge beziehen sich auf das Neuladen von ApplicationContext nach dem Ändern der ausgelagerten Konfiguration. Dies entspricht jedoch dem Neustart der gesamten Anwendung, sodass dies nicht wirklich sinnvoll ist.

eim Lesen der SpringBoot-Referenzdokumentation habe ich ein Kapitel gefunde 23.7 Typesichere Konfigurationseigenschaften.

Wenn ich es richtig verstehe, können Sie damit einfache POJO-Klassen definieren, die Ihre (ausgelagerten) Anwendungskonfigurationswerte als Attribute enthalten.

Zumindest theoretisch könnte dieses Schema verwendet werden, um Beans nur einmal an das erforderliche Konfigurations-POJO zu binden und bei Konfigurationsänderungen nur die Werte im POJO zu aktualisieren. Komponenten könnten die Änderungen beim nächsten Zugriff auf Getter auf dem POJO problemlos übernehmen ...

Ich habe es jedoch noch nicht geschafft, herauszufinden, wie ich diese Art von Verhalten aktivieren kann. Gibt es eine besonders offensichtliche Möglichkeit, mit @ gekennzeichnete Komponenten dynamisch zu aktualisiere@ConfigurationProperties wenn sich die relevante Konfiguration geändert hat?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage