[JAVA] Essayez d'exécuter Spring Cloud Config pour le moment

Objectif

En vous référant au Spring Cloud Config Manual Construisez simplement ConfigServer et ConfigClient, Vérifiez si le fichier de paramètres placé dans ConfigServer est reflété dans Client.

Config Server

Ajout de spring-cloud-config-server

build.gradle


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

Ajout de @ EnableConfigServer à la classe de démarrage SpringBoot

ConfigServerApplication.java


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

Définissez le référentiel git où se trouve le fichier de configuration sur application.yml. De plus, Springboot utilise par défaut le port 8080, donc Réglez le port sur 8880 afin de ne pas entrer en collision avec le client décrit plus loin.

application.yml


server:
  port: 8880
spring:
  cloud:
    config:
      server:
        git:
          #L'URI du référentiel git où réside le fichier de configuration
          uri: https://github.com/spring-cloud-samples/config-repo.git

Une fois la configuration terminée, démarrez. Une fois démarré, il sera accessible sur les terminaux suivants.

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

ConfigClient obtient le fichier de configuration de ConfigServer en remplaçant {} par la valeur de Client. {application}: valeur de spring.application.name (la valeur par défaut est" application ") {profile}: valeur de spring.profiles.active {label}: branche git, nom de la balise ou commitID (la valeur par défaut est "master")

Si vous essayez de faire une requête à http: // localhost: 8880 / foo / development / La réponse suivante a été renvoyée

{
    "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"
            }
        }
    ]
}

S'il y a une authentification dans le référentiel git, il semble que vous devriez définir application.yml en faisant référence à cette zone Authentication

Config Client

Ajout de spring-cloud-starter-config

build.gradle


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

Créez un nouveau bootstrap.yml SpringCloudConfigClient charge bootstrap.yml au lieu de application.yml Accès à ce spring.cloud.config.uri (http: // localhost: 8888 si non spécifié)

bootstrap.yml


spring:
  application:
    name: foo
  profiles:
    active: development
  cloud:
    config:
      #URI de ConfigServer
      uri: http://localhost:8880
      #Défini sur true si vous souhaitez lever une exception lorsque vous ne pouvez pas vous connecter à ConfigServer(la valeur par défaut est false)
      fail-fast: true

Ajout d'un point de terminaison qui peut vérifier la valeur du paramètre dans la classe de démarrage

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

}

Vérifiez le résultat

Étant donné que le nom d'application du client est foo et que le profil est développement, le fichier de paramètres suivant est la valeur attendue. https://github.com/spring-cloud-samples/config-repo/blob/master/foo-development.properties

bar: spam
foo: from foo development

Lorsque vous démarrez Client et accédez à localhost: 8080 / bar, "spam" Quand j'ai accédé à localhost: 8080 / foo, "from foo development" était affiché.

Recommended Posts

Essayez d'exécuter Spring Cloud Config pour le moment
Commande pour essayer d'utiliser Docker pour le moment
Spring Boot pour la première fois
Intégration du serveur de configuration dans Spring Cloud Config
Spring AOP pour la première fois
Installez Amazon Corretto (préversion) pour le moment
Utilisez une bibliothèque Java externe pour le moment
Exécutez Dataflow, Java, Streaming pour le moment
Essayez le tutoriel Spring WebFlux
Hello World avec la bibliothèque d'extension Ruby pour le moment
Java14 est sorti, alors j'ai essayé d'enregistrer pour le moment
Essayez d'exécuter Spring Boot sur Kubernetes
Je suis désolé d'installer JDK9 sur mon PC, mais j'aimerais essayer JShell pour le moment
Expérimentons le flux d'octroi de code d'autorisation avec Spring Security OAuth-Partie 2: Créer une application pour le moment
Java12 est sorti, alors j'ai essayé l'expression switch pour le moment
Liste de réglages de Glassfish que je souhaite conserver pour le moment
[First Java] Créez quelque chose qui fonctionne avec Intellij pour le moment
Introduction à Java pour la première fois # 2
Prise en charge des tampons de protocole pour Spring Cloud Stream
Apprendre pour la première fois java [Introduction]
Utilisez la méthode l pour la notation temporelle
Je veux que vous utilisiez Scala comme meilleur Java pour le moment
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
Vérifiez les options définies pour le processus Java en cours d'exécution
Essayez d'appeler le service CORBA depuis Spring (Java)
Murs touchés par le premier Rspec
Développement d'Android Studio pour la première fois (pour les débutants)
J'ai essayé de toucher Docker pour la première fois
Créez un serveur Spring Cloud Config en toute sécurité avec Spring Boot 2.0
Mémo à faire pour le moment lors de la construction de la série CentOS 6 avec VirtualBox
[Rails] N + 1 est le mal! Si cela se produit, résolvez-le pour le moment! !! Est dangereux