【发布时间】:2020-02-16 19:12:50
【问题描述】:
在 Spring Boot 项目中,我试图从 yaml 文件中绑定地图。我已经尝试了大多数绑定地图的解决方案,但出现以下错误:
Property: order.events
Value: null
Reason: must not be empty
Action:
Update your application's configuration
正如您在配置类中看到的那样,我通过 lombok 有 getter/setter,而内部类是一个静态类。
@Data
@Validated
@ConfigurationProperties(prefix = "order", ignoreUnknownFields = false)
public class OrderConfig {
private String clientKey;
private String apiVersion;
private String endpoint;
@Valid
@NotEmpty
private Map<String, Event> events;
@Data
public static class Event {
@NotBlank
private String action;
@NotBlank
private String eventName;
}
}
通过使用 lombok,我已经拥有了所有必要的 getter 和 setter 方法。我的配置 yaml 文件是:
order:
clientKey: client_1
apiVersion: 1.0.0
endpoint: https://www.ordertest.com/api
events:
order.create:
action: track
eventName: purchase
order.place:
action: track
eventName: purchase
还有我的应用程序类:
@SpringBootApplication
@EnableConfigurationProperties(OrderConfig.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
【问题讨论】:
标签: java spring-boot configuration yaml