Перехватчики после обновления Spring Cloud RefreshScope

Существует ли понятие хука пост-обновления @RequestScope?

Вариант использования: нам нужно отправить изменения конфигурации. В настоящее время это выполняется вручную и срабатывает как часть перезапуска приложения. Однако, если мы можем вызвать /bus/refresh после обновления среды, не уничтожить компонент (в данном случае @Service), но запустить некоторые изменения конфигурации после обновления нового значения среды? Возможно ли что-то подобное?


person dmfrey    schedule 14.04.2016    source источник
comment
Опубликовано событие Spring Application. На моем телефоне, поэтому я не могу точно вспомнить, что это такое. (Обновить событие?).   -  person spencergibb    schedule 14.04.2016
comment
@spencergibb спасибо. Я посмотрю на мониторинг и посмотрю, решит ли это проблему.   -  person dmfrey    schedule 15.04.2016
comment
@spencergibb Я нахожу RefreshEvent и RefreshScopeRefreshedEvent. Также уже есть RefreshListener, похоже, это то, что я действительно хочу реализовать в своем сервисе. Есть ли уже открытая RefreshEndpoint, которую я могу подключить автоматически?   -  person dmfrey    schedule 15.04.2016
comment
Компонент @RefreshScope также является прокси с целью, чей жизненный цикл привязан к этим событиям обновления. Так что это хороший способ реагировать на события без написания кода, специфичного для Spring. Думаю, я не понял вариант использования, если это не сработает.   -  person Dave Syer    schedule 15.04.2016
comment
@DaveSyer Это была моя первоначальная цель, однако они не хотели, чтобы боб был уничтожен. Я узнал больше о том, почему они хотят этого. Это процесс поиска, и этот конкретный случай связан с возможностью вручную изменять размер кеша по желанию. Я не буду вдаваться в подробности, почему они хотят сделать это таким образом, но это требование. Это устаревшее приложение, которое, похоже, нуждается в рефакторинге, чтобы использовать преимущества лучших технологий кэширования.   -  person dmfrey    schedule 15.04.2016


Ответы (1)


Решение, которое я использовал, состояло в том, чтобы заставить мой @Service реализовать ApplicationListener и переопределить onApplicationEvent (событие RefreshRemoteApplicationEvent). Это уже выполняется в RefreshListener, но моя реализация смогла проверить измененные ключи и отреагировать в соответствии с правилами, установленными клиентом для конкретных изменений ключей.

person dmfrey    schedule 15.04.2016
comment
Ну, это должно быть удалено, а не удалено. Я обновлю его. - person dmfrey; 18.04.2016