Загрузка HashMap во вложенный компонент конфигурации вызывает исключение Binding - PullRequest
0 голосов
/ 01 февраля 2019

Я пытался этот пример, приведенный здесь: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-typesafe-configuration-properties

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

свойство добавлено как:

    demoapp.security.policies={'KEY1': 'value1', 'KEY2': 'value3', 'KEY3': 'value5'}

И внутри внутреннего класса Secutiry, добавил еще одну переменную, как показано ниже:

private Map<String, String> policies;

public Map<String, String> getPolicies() {
  return policies;
}

public void setPolicies(Map<String, String> policies) {
  this.policies = policies;
}

Но это выдает ошибку как:

    Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String, java.lang.String>]

Интересно, если я помещу это в обычный (не вложенный) класс конфигурации у меня работает нормально.

Что здесь не так, любые предложения, пожалуйста

1 Ответ

0 голосов
/ 01 февраля 2019

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

Файл свойств:

demoapp.security.policies.KEY1=value1
demoapp.security.policies.KEY2=value3
demoapp.security.policies.KEY3=value5

Файл YAML:

demoapp.security.policies:
  "[KEY1]": value1
  "[KEY2]": value3
  "[KEY3]": value5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...