Учебники

Spring Boot — клиент облачной конфигурации

Некоторым приложениям могут потребоваться свойства конфигурации, которые могут потребовать изменения, и разработчикам может потребоваться их отключить или перезапустить приложение, чтобы выполнить это. Однако это может привести к простою в работе и необходимости перезапуска приложения. Spring Cloud Configuration Server позволяет разработчикам загружать новые свойства конфигурации без перезапуска приложения и без простоев.

Работа с Spring Cloud Configuration Server

Сначала загрузите проект Spring Boot со страницы https://start.spring.io/ и выберите зависимость клиента Spring Cloud Config. Теперь добавьте зависимость Spring Cloud Starter Config в файл конфигурации сборки.

Пользователи Maven могут добавить следующую зависимость в файл pom.xml.

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

Пользователи Gradle могут добавить следующую зависимость в файл build.gradle .

compile('org.springframework.cloud:spring-cloud-starter-config')

Теперь вам нужно добавить аннотацию @RefreshScope в основное приложение Spring Boot. Аннотация @RefreshScope используется для загрузки значения свойств конфигурации с сервера конфигурации.

package com.example.configclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;

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

Теперь добавьте URL-адрес сервера конфигурации в файл application.properties и укажите имя приложения.

Примечание — сервер конфигурации http: // localhost: 8888 должен быть запущен до запуска клиентского приложения конфигурации.

spring.application.name = config-client
spring.cloud.config.uri = http://localhost:8888

Код для написания простой конечной точки REST для чтения приветственного сообщения с сервера конфигурации приведен ниже —

package com.example.configclient;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RefreshScope
@RestController
public class ConfigclientApplication {
   @Value("${welcome.message}")
   String welcomeText;
   
   public static void main(String[] args) {
      SpringApplication.run(ConfigclientApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String welcomeText() {
      return welcomeText;
   }
}

Вы можете создать исполняемый файл JAR и запустить приложение Spring Boot, используя следующие команды Maven или Gradle:

Для Maven вы можете использовать команду, показанную ниже —

mvn clean install

После «BUILD SUCCESS» вы можете найти файл JAR в целевом каталоге.

Для Gradle вы можете использовать команду, показанную ниже —

gradle clean build

После «BUILD SUCCESSFUL» вы можете найти файл JAR в каталоге build / libs.

Теперь запустите файл JAR с помощью команды, показанной здесь:

java –jar <JARFILE> 

Теперь приложение запущено на порт 8080 Tomcat, как показано здесь:

Запущенное приложение на Tomcat Port 8080

Вы можете увидеть журнал в окне консоли; Приложение config-client извлекает конфигурацию из https: // localhost: 8888

2017-12-08 12:41:57.682  INFO 1104 --- [           
   main] c.c.c.ConfigServicePropertySourceLocator : 
   Fetching config from server at: http://localhost:8888

Теперь нажмите URL, http: // localhost: 8080 / приветственное сообщение загружено с сервера конфигурации.

Spring Cloud Config Server

Теперь перейдите и измените значение свойства на сервере конфигурации и нажмите POST URL-адрес конечной точки привода http: // localhost: 8080 / refresh и посмотрите новое значение свойства конфигурации в URL http: // localhost: 8080 /