Spring boot Получить свойства с консульского сервера

У меня есть загрузочное приложение Spring, и я хотел бы получить свойства, которые у меня есть на агенте-консуле.

@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>

Свойства хранятся в консуле в следующем формате: Business/SOAPProxy/proxy.endpoint.

Когда приложение загружается, кажется, что оно находит консул, но не может получить значения, как могло бы, прежде чем пытаться использовать консул @Value("${proxy.endpoint}") Как я могу получить свойства консула?


person The Strong Programmer    schedule 02.03.2017    source источник
comment
Вам нужно получить конфигурацию от консула?   -  person wthamira    schedule 09.03.2017


Ответы (1)


Вы можете использовать три способа загрузки конфигурации из консула

  1. ключ/значение
  2. батат
  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  

мое загрузочное приложение Аннотировать, как показано ниже

@EnableDiscoveryClient
@EnableAutoConfiguration
@SpringBootApplication
public class SpringBootConsulApplication {

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

зависимость 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>

это конфигурация ключа/значения консульского агента

введите описание изображения здесь

теперь при запуске вся конфигурация загружается в приложение

person wthamira    schedule 09.03.2017