Spring Boot - Cloud-Konfigurationsclient
Einige Anwendungen benötigen möglicherweise Konfigurationseigenschaften, die möglicherweise geändert werden müssen, und Entwickler müssen sie möglicherweise herunterfahren oder die Anwendung neu starten, um dies auszuführen. Dies kann jedoch zu Ausfallzeiten in der Produktion und der Notwendigkeit eines Neustarts der Anwendung führen. Mit Spring Cloud Configuration Server können Entwickler die neuen Konfigurationseigenschaften laden, ohne die Anwendung neu zu starten und ohne Ausfallzeiten.
Arbeiten mit Spring Cloud Configuration Server
Laden Sie zunächst das Spring Boot-Projekt von herunter https://start.spring.io/und wählen Sie die Spring Cloud Config Client-Abhängigkeit. Fügen Sie nun die Spring Cloud Starter Config-Abhängigkeit in Ihre Build-Konfigurationsdatei ein.
Maven-Benutzer können der Datei pom.xml die folgende Abhängigkeit hinzufügen.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
Gradle-Benutzer können die folgende Abhängigkeit in die hinzufügen build.gradle Datei.
compile('org.springframework.cloud:spring-cloud-starter-config')
Jetzt müssen Sie die Annotation @RefreshScope zu Ihrer Hauptanwendung von Spring Boot hinzufügen. Die Annotation @RefreshScope wird verwendet, um den Wert der Konfigurationseigenschaften vom Konfigurationsserver zu laden.
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);
}
}
Fügen Sie nun die Konfigurationsserver-URL in Ihre Datei application.properties ein und geben Sie Ihren Anwendungsnamen an.
Note - http: // localhost: 8888 Konfigurationsserver sollte ausgeführt werden, bevor die Konfigurationsclientanwendung gestartet wird.
spring.application.name = config-client
spring.cloud.config.uri = http://localhost:8888
Der Code zum Schreiben eines einfachen REST-Endpunkts zum Lesen der Begrüßungsnachricht vom Konfigurationsserver ist unten angegeben:
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;
}
}
Sie können eine ausführbare JAR-Datei erstellen und die Spring Boot-Anwendung mit den folgenden Maven- oder Gradle-Befehlen ausführen:
Für Maven können Sie den unten gezeigten Befehl verwenden -
mvn clean install
Nach "BUILD SUCCESS" finden Sie die JAR-Datei im Zielverzeichnis.
Für Gradle können Sie den folgenden Befehl verwenden:
gradle clean build
Nach "BUILD SUCCESSFUL" finden Sie die JAR-Datei im Verzeichnis build / libs.
Führen Sie nun die JAR-Datei mit dem hier gezeigten Befehl aus:
java –jar <JARFILE>
Jetzt wurde die Anwendung auf dem Tomcat-Port 8080 wie hier gezeigt gestartet -
Sie können das Anmeldekonsolenfenster sehen. Die config-client-Anwendung ruft die Konfiguration von der abhttps://localhost:8888
2017-12-08 12:41:57.682 INFO 1104 --- [
main] c.c.c.ConfigServicePropertySourceLocator :
Fetching config from server at: http://localhost:8888
Jetzt drücke die URL, http://localhost:8080/ Die Begrüßungsnachricht wird vom Konfigurationsserver geladen.
Ändern Sie nun den Eigenschaftswert auf dem Konfigurationsserver und klicken Sie auf die POST-URL des Aktuatorendpunkts http://localhost:8080/refresh und sehen Sie den neuen Konfigurationseigenschaftswert in der URL http://localhost:8080/