【发布时间】:2019-10-31 09:34:50
【问题描述】:
如何在 java springboot 应用程序中从配置 yml 文件中加载对象列表?
我已经尝试了几个来源:
configuration-properties-in-spring-boot
spring-boot-configurationproperties-example
SpringBoot 2 the elements were left unbound
堆栈:Java 11、SpringBoot 2.1.4、Lombok、.yml 格式的配置文件。
我尝试实现简单的@Component,它将从配置文件中加载数据。
配置值为:
allowed:
- first-crossroad: ONE
second-crossroad: TWO
third-crossroad: TWO
fourth-crossroad: THREE
- first-crossroad: ONE
second-crossroad: THREE
third-crossroad: TWO
fourth-crossroad: ONE
数据加载的Java类是:
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "")
@Data
public class AllowedCrossroads {
private List<CrossroadCombination> allowed;
}
Java CrossroadCombination 对象定义:
@Data
@Builder
@AllArgsConstructor
public class CrossroadCombination {
private String firstCrossroad;
private String secondCrossroad;
private String thirdCrossroad;
private String fourthCrossroad;
}
我希望在应用程序运行期间加载值。但我收到错误:
Property: allowed[0].first-crossroad
Value: ONE
Origin: class path resource [application.yml]:644:17
Reason: The elements [allowed[0].first-crossroad,allowed[0].fourth-crossroad,allowed[0].second-crossroad,allowed[0].third-crossroad,allowed[1].first-crossroad,allowed[1].fourth-crossroad,allowed[1].second-crossroad,allowed[1].third-crossroad,allowed[2].first-crossroad,allowed[2].fourth-crossroad,allowed[2].second-crossroad,allowed[2].third-crossroad] were left unbound.
【问题讨论】:
标签: java spring-boot configuration