Как мне прочитать свойства массива Micronaut из root иерархии конфигурации? - PullRequest
0 голосов
/ 27 марта 2020

Если у меня есть файл конфигурации

app:
    integers:
        - 1
        - 2

, я могу использовать параметры конфигурации Micronaut для создания компонентов конфигурации:

@ConfigurationProperties("app")
public class AppConfig {
  public List<Integer> integers;
}

Но что, если массив целых чисел находится в root иерархия конфигурации:

integers:
    - 1
    - 2

Следующее не работает:

@ConfigurationProperties("")
public class RootConfig {
  public List<Integer> integers;
}

1 Ответ

1 голос
/ 27 марта 2020

@ConfigurationProperties работает только с префиксом. И "" не является допустимым префиксом.

Более того, @ConfigurationProperties имеет смысл, только если у вас много полей (может быть, поэтому оно не предназначено для работы), а не для одного поля, например

integers:
    - 1
    - 2

В данном случае @ConfigurationProperties это перебор. Просто используйте @Value вот так

@Value("${integers}")
public List<Integer> integers;

и объявите так в yaml

integers: 1,2
...