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