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;
}
在 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;
}