Spring Boot从领事服务器获取属性

Gra*_*ter 4 spring spring-boot consul spring-cloud-consul

我有一个Spring Boot应用程序,我想获得领事代理上的属性。

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

我的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
Run Code Online (Sandbox Code Playgroud)

在pom.xml中,我具有以下配置(简短版本)

            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Camden.SR5</version>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
Run Code Online (Sandbox Code Playgroud)

这些属性以以下格式存储在领事上:Business / SOAPProxy / proxy.endpoint

当应用程序启动时,它似乎找到了consul,但是在尝试使用consul @Value(“ $ {proxy.endpoint}”)之前无法获取值,如何获取consul的属性?

wth*_*ira 5

您可以使用三种方式从领事加载配置

  1. 核心价值
  2. yaml
  3. 文件

我在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  
Run Code Online (Sandbox Code Playgroud)

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

@EnableDiscoveryClient
@EnableAutoConfiguration
@SpringBootApplication
public class SpringBootConsulApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootConsulApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

Maven的依赖这样添加

<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>
Run Code Online (Sandbox Code Playgroud)

这是领事代理密钥/值的配置

在此处输入图片说明

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