клиент spring cloud config не загружает конфигурацию с сервера конфигурации

Я по этой ссылке: http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_client_side_usage

Я тестировал это снова и снова и не видел Spring cloud client загружает конфигурацию с облачного сервера, пожалуйста, помогите увидеть, где находится ошибка:

пом:

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>
</dependencies>

применение:

    @Configuration
@EnableAutoConfiguration
@RestController
public class ConfigclientApplication {

    @Value("${spring.cloud.config.uri}")
    String url;

    @Value("${production.host}")
    String host;


    @RequestMapping("/")
    public String home() {
        return "Host is  => " + this.host ;
    }

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

bootstrap.свойства: весна.облако.конфиг.uri=http://localhost:8888

  1. сервер конфигурации хороший: http://localhost:8888/spirent/default

    {"name":"spirent","profiles":["default"],"label":"master","propertySources":[{"name":"classpath:/spirent.yml","source":{"production.host":"server1","production.port":9999,"production.value1":12345,"test.host":"server2.com","test.port":4444,"test.value":"hello123"}}]}

  2. теперь http://localhost:8080/ не может быть начато вовсе.

    ошибка при создании фасоли с имя 'configclientApplication' Казалось, что автоинъекция @Value не может найти производство.значение окружающей среды.

Как я могу прочитать конфигурацию в клиенте после загрузки с сервера конфигурации?

Спасибо за вашу помощь.

1 ответов


как подразумевает Deinum, я бы гарантировал, что у вас есть клиент, настроенный с родитель как spring-cloud-starter-parent и дайте ему версию. Плагины Maven, предоставляемые spring cloud, не будут работать, когда вы включаете в свои зависимости и помните, что cloud-это другой проект, чем boot. Измените его на:

<parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>1.0.0.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

во-вторых, как новая дисциплина (и, вероятно, не ваша проблема здесь), я бы использовал новую аннотацию в вашем приложении вместо @Configuration и @EnableAutoConfiguration

@SpringBootApplication

в-третьих, дважды проверьте, что у вас есть @EnableConfigServer на вашем сервере конфигурации

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

spring.application.name=spirent

наконец, если вы использовали пример проекта spring-cloud-config, есть пароль пользователя и безопасности по умолчанию, который вы должны установить в своем URI:

http://user:ddf4757e-0077-42e4-b2ad-2ae04340b08c@localhost:8888

в противном случае попробуйте начать с проекта spring-cloud-config расположенный здесь, чтобы убедиться, что ваш сервер конфигурации настроен правильно:

https://github.com/spring-cloud/spring-cloud-config