Spring Boot - klient konfiguracji chmury

Niektóre aplikacje mogą wymagać właściwości konfiguracyjnych, które mogą wymagać zmiany, a programiści mogą być zmuszeni do ich wyłączenia lub ponownego uruchomienia aplikacji, aby to wykonać. Może to jednak prowadzić do przestojów w produkcji i konieczności ponownego uruchomienia aplikacji. Spring Cloud Configuration Server umożliwia programistom ładowanie nowych właściwości konfiguracyjnych bez ponownego uruchamiania aplikacji i bez przestojów.

Praca z serwerem konfiguracji Spring Cloud

Najpierw pobierz projekt Spring Boot z https://start.spring.io/i wybierz zależność Spring Cloud Config Client. Teraz dodaj zależność Spring Cloud Starter Config do pliku konfiguracji kompilacji.

Użytkownicy Maven mogą dodać następującą zależność do pliku pom.xml.

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

Użytkownicy Gradle mogą dodać następującą zależność do build.gradle plik.

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

Teraz musisz dodać adnotację @RefreshScope do swojej głównej aplikacji Spring Boot. Adnotacja @RefreshScope służy do ładowania wartości właściwości konfiguracyjnych z serwera Config.

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);
   }
}

Teraz dodaj adres URL serwera konfiguracji do pliku application.properties i podaj nazwę aplikacji.

Note - http: // localhost: serwer konfiguracyjny 8888 należy uruchomić przed uruchomieniem aplikacji klienta konfiguracji.

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

Kod do napisania prostego punktu końcowego REST w celu odczytania wiadomości powitalnej z serwera konfiguracji jest podany poniżej -

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;
   }
}

Możesz utworzyć wykonywalny plik JAR i uruchomić aplikację Spring Boot za pomocą następujących poleceń Maven lub Gradle -

W przypadku Mavena możesz użyć polecenia pokazanego poniżej -

mvn clean install

Po „BUILD SUCCESS” można znaleźć plik JAR w katalogu docelowym.

W przypadku Gradle możesz użyć polecenia pokazanego poniżej -

gradle clean build

Po „BUILD SUCCESSFUL” możesz znaleźć plik JAR w katalogu build / libs.

Teraz uruchom plik JAR, używając polecenia pokazanego tutaj:

java –jar <JARFILE>

Teraz aplikacja została uruchomiona na porcie Tomcat 8080, jak pokazano tutaj -

Możesz zobaczyć okno logowania w konsoli; config-client aplikacja pobiera konfigurację zhttps://localhost:8888

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

Teraz kliknij adres URL, http://localhost:8080/ wiadomość powitalna jest ładowana z serwera konfiguracji.

Teraz przejdź i zmień wartość właściwości na serwerze konfiguracji i naciśnij adres URL POST punktu końcowego elementu wykonawczego http://localhost:8080/refresh i zobacz nową wartość właściwości konfiguracji w adresie URL http://localhost:8080/