Обновление @Resource и @Autowired bean во время выполнения - PullRequest
0 голосов
/ 19 июня 2020

У меня есть один bean-компонент, который определен в SpringConfiguration и инициализируется при запуске. Этот bean-компонент (Map) заполняется путем запроса базы данных при запуске.

Теперь база данных часто обновляется, и я реализовал ApplicationListener и пытался реализовать кеш с помощью TimerTask.

Код of timertask работает нормально, и в этом случае я обращаюсь к bean-компоненту с помощью ApplicationContext, но не могу обновить / повторно инициализировать bean-компонент с новыми результатами базы данных.

Bean-компоненты @Resource и @Autowired по-прежнему показывают старое значение.

Я хочу обновить / повторно инициализировать bean-компонент @Autowired / @Resource во время выполнения. Сообщите пожалуйста

1 Ответ

0 голосов
/ 21 июня 2020

Если вы используете ORM, он должен обработать это за вас.

В противном случае, если вы делаете это самостоятельно, вы можете аннотировать bean-компонент с помощью @RefreshScope и при обнаружении изменения (где бы вы ни использовали метод, например, cron или listener) затем просто обновите sh контекст от привода, например:

http://localhost: 8080 / actator / refre sh

Ура!

pd: Привод должен быть включен и доступен.

...