Наличие свойств bean-компонента Spring, автоматически обновляемых из файла свойств - PullRequest
5 голосов
/ 27 февраля 2009

Я использую Spring 2.5.6. У меня есть bean-компонент, свойства которого назначаются из файла свойств через PropertyPlaceholderConfigurer . Мне интересно, возможно ли обновить свойство компонента при изменении файла свойств. Например, будет некоторый периодический процесс, который проверяет дату последнего изменения файла свойств, и, если он изменился, перезагружает bean-компонент.

Мне интересно, есть ли уже что-то, что удовлетворяет моим требованиям. Если нет, то какой будет лучший подход к решению этой проблемы?

Спасибо за вашу помощь.

Ответы [ 5 ]

3 голосов
/ 27 февраля 2009

Можно также изучить использование PropertyOverrideConfigurer Spring. Могли бы перечитать свойства и повторно применить их в каком-либо компоненте Polling / Schedular.

Это зависит от того, как фактические настроенные компоненты используют эти свойства. Они могут, например, косвенно кэшировать их где-то сами.

2 голосов
/ 27 февраля 2009

Если вы хотите динамические свойства во время выполнения, возможно, другой способ сделать это - JMX.

0 голосов
/ 08 марта 2016

Spring Cloud Config имеет средства для изменения свойств конфигурации во время выполнения через Spring Cloud Bus и с помощью сервера Cloud Config. Файлы конфигурации или .properties или .yml «извлекаются» из приложения Spring и вместо этого извлекаются из сервера Spring Cloud Config, к которому приложение подключается при запуске. Этот Cloud Config Server извлекает соответствующие файлы конфигурации .properties или .yml из репозитория GIT (существуют другие решения для хранения, но GIT является наиболее распространенным). Затем вы можете изменить конфигурацию во время выполнения, изменив содержимое файлов конфигурации репозитория GIT. Сервер Cloud Config транслирует изменения в любые приложения Client Spring через Spring Cloud Bus, и конфигурация этих приложений обновляется без необходимости перезапуска приложение. Вы можете найти рабочий простой пример здесь: https://github.com/ldojo/spring-cloud-config-examples

0 голосов
/ 23 апреля 2012

Вы можете попытаться использовать настраиваемую область действия для компонента, который воссоздает компоненты при изменении файла свойств. Смотрите мой более подробный ответ здесь .

0 голосов
/ 27 февраля 2009

Один из способов сделать это - встроить отличную консоль в ваше приложение. Вот некоторые инструкции. Их было очень просто сделать, между прочим, - у меня ушло совсем немного времени, хотя я не очень хорошо знаком с Groovy.

Как только вы это сделаете, вы можете просто зайти в консоль и изменить значения внутри живого приложения на лету.

...