Изменение конфигурации приложения на Spring Boot во время работы

Можно ли изменить конфигурацию приложения или бина во время работы приложения? Или обновления конфигурации можно применить только при запуске/перезапуске?


Ответы (2 шт):

Автор решения: Artur Vartanyan

Если Вы будете изменять код во время запущенного приложения, то никаких изменений не произойдет. Чтобы изменения вступили в силу, Вам необходимо перезапустить приложение. Поэтому ответ на Ваш вопрос: обновление конф. можно применить только при перезапуске.

→ Ссылка
Автор решения: petrovich

Да, вы можете обновлять отдельные бины java конфигураций, а также конфигурацию.

У спринга существует проект Spring Cloud, благодаря которому вы можете централизованно управлять конфигурациями практически любых микросервисов (в том числе обновление конфигураций без редеплоя). Пометив аннтотацией @RefreshScope класс конфигураций вы можете управлять полями этой конфигурации, изменяя их на удаленном сервере конфигураций.

Из javadoc к аннотации @RefreshScope

Beans annotated this way can be refreshed at runtime and any components that
are using them will get a new instance on the next method call, fully
initialized and injected with all dependencies.
→ Ссылка