[JAVA] Versuchen Sie vorerst, Spring Cloud Config auszuführen

Zweck

Unter Bezugnahme auf das Spring Cloud Config Manual Erstellen Sie einfach ConfigServer und ConfigClient. Überprüfen Sie, ob die in ConfigServer abgelegte Einstellungsdatei im Client wiedergegeben wird.

Config Server

Spring-cloud-config-server hinzugefügt

build.gradle


dependencies {
	implementation('org.springframework.cloud:spring-cloud-config-server')
}

@ EnableConfigServer zur SpringBoot-Bootklasse hinzugefügt

ConfigServerApplication.java


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

Legen Sie das Git-Repository, in dem sich die Konfigurationsdatei befindet, auf application.yml fest. Springboot verwendet standardmäßig den Port 8080 Stellen Sie den Port auf 8880 ein, um nicht mit dem später beschriebenen Client zu kollidieren.

application.yml


server:
  port: 8880
spring:
  cloud:
    config:
      server:
        git:
          #Der Git-Repository-URI, in dem sich die Konfigurationsdatei befindet
          uri: https://github.com/spring-cloud-samples/config-repo.git

Starten Sie nach dem Einrichten bis zu diesem Punkt. Nach dem Start ist es auf den folgenden Endpunkten verfügbar.

/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties

ConfigClient ruft die Konfigurationsdatei von ConfigServer ab, indem {} durch den Wert von Client ersetzt wird. {application}: Wert von spring.application.name (Standard ist" application ") {profile}: Wert von spring.profiles.active {label}: Git-Zweig, Tag-Name oder CommitID (Standard ist "master")

Wenn Sie versuchen, eine Anfrage an http: // localhost: 8880 / foo / development / zu stellen Die folgende Antwort wurde zurückgegeben

{
    "name": "foo",
    "profiles": [
        "development"
    ],
    "label": null,
    "version": "a611374438e75aa1b9808908c57833480944e1a8",
    "state": null,
    "propertySources": [
        {
            "name": "https://github.com/spring-cloud-samples/config-repo.git/foo-development.properties",
            "source": {
                "bar": "spam",
                "foo": "from foo development"
            }
        },
        {
            "name": "https://github.com/spring-cloud-samples/config-repo.git/foo.properties",
            "source": {
                "foo": "from foo props",
                "democonfigclient.message": "hello spring io"
            }
        },
        {
            "name": "https://github.com/spring-cloud-samples/config-repo.git/application.yml (document #0)",
            "source": {
                "info.description": "Spring Cloud Samples",
                "info.url": "https://github.com/spring-cloud-samples",
                "eureka.client.serviceUrl.defaultZone": "http://localhost:8761/eureka/",
                "foo": "baz"
            }
        }
    ]
}

Wenn im Git-Repository eine Authentifizierung vorhanden ist, sollten Sie anscheinend application.yml festlegen, die auf diesen Bereich verweist Authentication

Config Client

Spring-Cloud-Starter-Config hinzugefügt

build.gradle


dependencies {
  implementation('org.springframework.cloud:spring-cloud-starter-config')
}

Erstellen Sie eine neue bootstrap.yml SpringCloudConfigClient lädt bootstrap.yml anstelle von application.yml und Zugriff auf diese spring.cloud.config.uri (http: // localhost: 8888, falls nicht angegeben)

bootstrap.yml


spring:
  application:
    name: foo
  profiles:
    active: development
  cloud:
    config:
      #ConfigServer URI
      uri: http://localhost:8880
      #Setzen Sie diesen Wert auf true, wenn Sie eine Ausnahme auslösen möchten, wenn Sie keine Verbindung zu ConfigServer herstellen können(Standard ist false)
      fail-fast: true

Es wurde ein Endpunkt hinzugefügt, der den Einstellungswert für die Startklasse überprüfen kann

ConfigClientApplication.java


@SpringBootApplication
@RestController
public class ConfigClientApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(ConfigClientApplication.class, args);
	}
	
	@GetMapping("/bar")
	public String bar(@Value("${bar: notDefined}") String bar) {
		return bar;
	}
	
	@GetMapping("/foo")
	public String foo(@Value("${foo: notDefined}") String foo) {
		return foo;
	}

}

Überprüfen Sie das Ergebnis

Da der Anwendungsname des Clients foo ist und das Profil entwickelt wird, ist die folgende Einstellungsdatei der erwartete Wert. https://github.com/spring-cloud-samples/config-repo/blob/master/foo-development.properties

bar: spam
foo: from foo development

Wenn Sie Client starten und auf localhost zugreifen: 8080 / bar, "Spam" Beim Zugriff auf localhost: 8080 / foo wurde "from foo development" angezeigt.

Recommended Posts

Versuchen Sie vorerst, Spring Cloud Config auszuführen
Befehl, um Docker vorerst zu verwenden
Spring Boot zum ersten Mal
Einbetten des Konfigurationsservers in Spring Cloud Config
Spring AOP zum ersten Mal
Installieren Sie vorerst Amazon Corretto (Vorschau)
Verwenden Sie vorerst eine externe Java-Bibliothek
Führen Sie jetzt Dataflow, Java, Streaming aus
Probieren Sie das Spring WebFlux-Tutorial aus
Hallo Welt mit Ruby-Erweiterungsbibliothek vorerst
Java14 kam heraus, also habe ich vorerst versucht aufzunehmen
Versuchen Sie, Spring Boot auf Kubernetes auszuführen
Ich bin nicht sicher, wie ich JDK9 auf meinem PC installieren soll, aber ich möchte JShell vorerst ausprobieren.
Lassen Sie uns den Berechtigungscode-Grant-Flow mit Spring Security OAuth-Teil 2: Erstellen einer App vorerst erleben
Java12 kam heraus, also habe ich vorerst den Schalterausdruck ausprobiert
Glassfish Tuning List, die ich vorerst behalten möchte
[Erstes Java] Machen Sie etwas, das vorerst mit Intellij funktioniert
Einführung in Java zum ersten Mal # 2
Unterstützt Protokollpuffer für Spring Cloud Stream
Zum ersten Mal Java lernen [Einführung]
Verwenden Sie die Methode l für die Zeitnotation
Ich möchte, dass Sie Scala vorerst als besseres Java verwenden
[Deep Learning von Grund auf neu] in Java 1. Zur Zeit Differenzierung und teilweise Differenzierung
Überprüfen Sie die für den laufenden Java-Prozess festgelegten Optionen
Versuchen Sie, den CORBA-Dienst von Spring (Java) aus aufzurufen.
Wände von der ersten Rspec getroffen
Android Studio-Entwicklung zum ersten Mal (für Anfänger)
Ich habe zum ersten Mal versucht, Docker zu berühren
Erstellen Sie mit Spring Boot 2.0 einen Spring Cloud Config Server mit Sicherheit
Vorläufiges Memo beim Erstellen der CentOS 6-Serie mit VirtualBox
[Schienen] N + 1 ist böse! Wenn es doch passiert, lösen Sie es vorerst! !! Ist gefährlich