我使用的是spring-config-server。我有它工作,但理想情况下,我想在.yaml文件中生成具有属性的服务器列表。
@Resource
private List<Server> servers;
然后:
@Component
public class Server {
@Value("${server.name}")
private String name;
}
(applicationName).yaml文件中的:
servers:
-
name: test
-
name: test2
请参阅我希望从配置中动态生成List<Server>
。这个配置在配置服务器上的事实不应该与本地.yaml文件不同吗?
感谢您的帮助
答案 0 :(得分:3)
我们想出来了......
Trinity:
test: Goober
servers:
-
name: test
jmxURL: jmx://test
-
name: test2
jmxURL: jmx://test
这是配置(在配置服务器中)......这是代码
@Component
@EnableAutoConfiguration
@EnableConfigurationProperties
@ConfigurationProperties(prefix="Trinity")
public class ConfigFetcher {
List<Server> servers;
public List<Server> getServers() {
return servers;
}
public void setTest(String test) {
this.test = test;
}
public void setServers(List<Server> servers) {
this.servers = servers;
}
@EnableConfigurationProperties
@ConfigurationProperties(prefix="Trinity.servers")
public static class Server{
private String name;
private String jmxURL;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJmxURL() {
return jmxURL;
}
public void setJmxURL(String jmxURL) {
this.jmxURL = jmxURL;
}
@Override
public String toString() {
return "Server [name=" + name + ", jmxUrl=" + jmxURL + "]";
}
}
}
在主类中(在我的服务中) 具有以下注释的类
@EnableAutoConfiguration
@Autowired
private ConfigFetcher c;