Spring boot从consul服务器获取属性

时间:2017-03-02 16:44:32

标签: spring spring-boot consul spring-cloud-consul

我有一个春季启动应用程序,我想获得我在领事代理上的属性。

@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages={"com.commons"})
public class MainAppProxy   implements CommandLineRunner {      
    @Value("${proxy.endpoint}")
    private String endpointAddress;

我的application.properties位于src / main / resources

spring.application.name=SOAPProxy
spring.cloud.consul.host=http://10.0.1.241
spring.cloud.consul.port=8500
spring.cloud.config.discovery.enabled=false
pom.xml中的

我有以下配置(短版)

            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Camden.SR5</version>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>

属性以以下格式存储在领事上: 商务/的SOAPProxy / proxy.endpoint

当应用程序启动时,它似乎找到了consul,但它在尝试consul @Value(“$ {proxy.endpoint}”之前无法获取值 我怎样才能获得领事的财产?

1 个答案:

答案 0 :(得分:4)

您可以使用三种方式从consul

加载配置
  1. 键/值
  2. YAML
  3. 文件
  4. 我在yaml中使用加载配置。

    这是我的bootstrap.yml文件(你也可以使用.property文件)

    spring:
      application:
        name: SOAPProxy
    
    ---
    
    spring:
      profiles: default
      cloud:
        consul:
          config:
            data-key: data
            prefix: config
            format: yaml
          host: localhost
          port: 8500
          discovery:
            prefer-ip-address: true  
    

    我的启动应用程序注释如下

    @EnableDiscoveryClient
    @EnableAutoConfiguration
    @SpringBootApplication
    public class SpringBootConsulApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootConsulApplication.class, args);
        }
    }
    

    maven dependancy像这样添加

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-config</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
    

    这是consul agent key / value

    的配置

    enter image description here

    现在启动所有配置加载到应用程序