Описание Я пытаюсь связать следующую конфигурацию с моим классом компонентов -
platform:
service:
config:
guard:
hostname: fancy-host1.kiki.com
resources:
- name: bark
api-path: dog/alert/bark/{dog-id}
- name: bite
api-path: dog/alert/bite/{dog-id}
json-path: $..kill-mode
play:
hostname: fancy-host2.kiki.com
resources:
- name: lick
api-path: dog/chill/lick/{dog-id}
json-path: $..cute-mode
Мой класс компонентов выглядит примерно так:
@Component
@ConfigurationProperties(prefix = "platform.service")
public class DogConfig
{
@Getter
@Setter
public class Resource
{
private String name;
private String apiPath;
private String jsonPath;
}
@Getter
@Setter
public class APIConfig
{
private String hostname;
private List<Resource> resources = new ArrayList<>();
}
private Map<ServiceType, APIConfig> config = new LinkedHashMap<>();
public Map<ServiceType, APIConfig> getConfig()
{
return config;
}
public void setConfig(Map<ServiceType, APIConfig> config)
{
this.config = config;
}
}
ВПриведенный выше код ServiceType представляет собой перечисление со значениями GUARD и PLAY.
Issue Хотя мое приложение для весенней загрузки не выдает никакой ошибки при инициализации, но оно не является обязательныммой класс YAML для DogConfig.Я не уверен, что именно мне здесь не хватает.
Мои усилия по устранению неполадок до сих пор Я полагаюсь на этой весной документ , чтобы передать мои настройки.Я знаю, что @ConfigurationProperties являются типобезопасными и имеют индивидуально протестированные привязки Enums, Maps и POJO.Но я не могу достичь всех трех сразу.