Некоторым приложениям могут потребоваться свойства конфигурации, которые могут потребовать изменения, и разработчикам может потребоваться их отключить или перезапустить приложение, чтобы выполнить это. Однако это может привести к простою в работе и необходимости перезапуска приложения. 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, как показано здесь:
Вы можете увидеть журнал в окне консоли; Приложение 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 / приветственное сообщение загружено с сервера конфигурации.
Теперь перейдите и измените значение свойства на сервере конфигурации и нажмите POST URL-адрес конечной точки привода http: // localhost: 8080 / refresh и посмотрите новое значение свойства конфигурации в URL http: // localhost: 8080 /