我已经为Spring Boot应用程序设置了以下配置类:
@Configuration
@ConfigurationProperties(prefix = "tasks")
@Getter
@Setter
public class TaskConfiguration {
private List<TaskEntry> tasks;
@Getter
@Setter
public static class TaskEntry {
private String name;
private String url;
private String cronExpression;
}
}
application.yml
定义了以下可以在应用程序中正确读取的值:
tasks:
tasks:
- name: A
url: http://localhosta
cronExpression: 1 2 3 4 5 A
- name: B
url: http://localhostb
cronExpression: 1 2 3 4 5 B
但是,您可能已经注意到配置文件中有一个重复的tasks
密钥。我还没有找到如何摆脱它,使YAML看起来像这样:
tasks:
- name: A
url: http://localhosta
cronExpression: 1 2 3 4 5 A
- name: B
url: http://localhostb
cronExpression: 1 2 3 4 5 B
从ConfigurationProperties
prefix
是属性的前缀是有效的绑定到这个对象,在你的情况下,这意味着任务将是你所有的配置类属性的前缀,包括任务属性出现在你的应用程序中。yml文件。为了避免这种情况,您可以使用@ConfigurationProperties
而不是@ConfigurationProperties(prefix = "tasks")
。