#spring-boot #apache-zookeeper #spring-bean
#весенняя загрузка #apache-zookeeper #spring-bean
Вопрос:
Я использую ZooKeeper с весенней загрузкой. И в файле application.properties я использую следующие свойства, как показано ниже.
minio.url=${minio.connection-string}
minio.access.key=${minio.accesskey}
где значение minio.connection-string и minio.accesskey будут получены из данных ZooKeeper znode. Я использую minio.url и minio.access.введите другой компонент Spring boot, как показано ниже.
@Configuration
@RefreshScope
public class MinioClientConf
{
@Value("${minio.url}")
private String minioUrl;
@Value("${minio.access.key}")
private String minioKey;
.
.
Когда я запускаю свое приложение spring boot, все работает, но когда я меняю значение узла ZooKeeper, оно не отражается в значении компонента без повторного запуска сервера.
Моя проблема в том, что я хочу перезагрузить последнее значение zookeeper без повторного запуска сервера. Я также пробовал с аннотацией области обновления, но это не сработало.
Комментарии:
1. Убедитесь, что ваш URL-адрес Minio сначала обновил сервер конфигурации. Пожалуйста, проверьте ниже URL, как сначала настроить сервер cloud.spring.io/spring-cloud-config/multi/… . Затем он будет отражать ваши клиенты конфигурации
Ответ №1:
Вместо этого используйте @ConfigurationProperties
@ConfigurationProperties("minio")
public class MinioClientConf
{
private String minioUrl;
private String minioKey;
.
.
Для получения более подробной информации нажмите здесь
Комментарии:
1. Итак, проблема в том, что вы не получаете ценность для minio от ZooKeeper. Вы проверили?
2. На самом деле, через cli я могу получить обновленное значение узла ZooKeeper. Но свойство JavaBean по-прежнему имеет старое значение.