#spring-boot
#spring-boot
Вопрос:
Я пытаюсь ввести список карт из конфигурации Spring Boot, но получаю пустой список. Как правильно ввести это?
cacheConfigs:
- cacheOne:
test: test1
- cacheTwo:
test: test2
- cacheThree:
test: test3
- cacheFor:
test: test4
@ConfigurationProperties(prefix = "cacheConfigs")
public List<Map<String, String>> getCacheConfigs() {
return new ArrayList<>();
}
Комментарии:
1. Может быть, этот пример может быть полезен? Он также сопоставляет свойства со списком объектов карты.
Ответ №1:
Это было «новым» для меня. Я получил эту работу, сделав cacheConfigs
один уровень глубже и используя новое имя верхнего уровня в качестве @ConfigurationProperties
параметра. Вот так:
cache-configs-map:
cacheConfigs:
- cacheOne:
test: test1
- cacheTwo:
test: test2
- cacheThree:
test: test3
- cacheFor:
test: test4
Теперь ваш класс конфигурации выглядит следующим образом:
@Configuration
public class Config{
@NoArgsConstructor @AllArgsConstructor( staticName = "of" )
@Getter @Setter
public static class C{
private List<Map<String, String>> cacheConfigs;
}
@Bean
@ConfigurationProperties(prefix = "cache-configs-map")
public C getC() {
return new C();
}
}