从config-server中的.yaml文件动态生成bean列表

时间:2015-01-27 22:27:12

标签: spring spring-boot spring-cloud

我使用的是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文件不同吗?

感谢您的帮助

1 个答案:

答案 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;