Spring 5 从环境中获取对象列表

Spring 5 getting lists of objects from Environment

在 Java 9 上使用最新的 Spring 5....

使用以下 YAML:

flow:
  - name: cats
    url: http://dogs.com
  - name: dogs
    url: http://cats.com

使用 Environment 可以像往常一样提取嵌套的 属性 值(env.getProperty("flow[0].name") 到字符串)。但是如何将 flow 列表拉入 List<Flow>?

假设我需要一个映射到 Flow class 的 ConfigurationProperties。不想在 yaml 中添加 flow 前缀。

然后通过 Environment 调用 getProperty 会是什么样子(例如 env.getProperty("flow", List.class) 但使用通用 List<Flow> 引用)。顺便说一句,我想要 flows 列表的原因是在设置环境(即 EnvironmentPostProcessor)后使用单独的 flow 配置注册 bean .

这应该有效。试一试。

@Configuration
@ConfigurationProperties
@Getter
@Setter
public class Configclass {

  List<Flow> flow;
}

@Getter
@Setter
public class Flow {

  public String name;
  public String url;
}