Добавить новый ключ / значение в весенний облачный конфиг - PullRequest
0 голосов
/ 31 октября 2018

У меня есть сценарий использования, когда некоторые файлы свойств отображаются как сервисы, использующие конфигурацию Spring Cloud, теперь давайте скажем, что кто-то добавляет новое значение ключа в файл свойств, а затем, как мы должны прочитать новое значение ключа в config-client после обновления поскольку у боба нет сопоставления, доступного?

Также как отобразить новый файл свойств?

1 Ответ

0 голосов
/ 31 октября 2018

Было бы лучше иметь класс-оболочку, который заботится о любых свойствах, и использовать оболочку для извлечения значений аргументов. Например,

@Component
public class ApplicationProperties {

  private Properties properties = new Properties();

  private Environment environment;

  @Autowired
  public ApplicationProperties(Environment environment) {
    this.environment = environment;
  }

  public String getProperty(String name) {
    return getPropertyFromEnvContext(name);
  }

  public String getProperty(String name, String defaultValue) {
    String value = getProperty(name);
    return value == null ? defaultValue : value;
  }

  private String getPropertyFromEnvContext(String name) {
    if (environment == null) {
        return properties.getProperty(name);
    }
    return properties.getProperty(name, environment.getProperty(name));
  }
}

Затем вставьте этот класс свойств в bean-компоненты и используйте метод getProperty, чтобы получить значение свойства. Вы должны написать логику для ключа.

Например, в моем случае использования,

String propertyKey = format("topics.%s.%s.%s", someVariable, someOtherVariable, priority);
properties.getProperty(propertyKey);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...