[JAVA] Intégration du serveur de configuration dans Spring Cloud Config

Spring Cloud Config est essentiellement utilisé séparément pour le serveur et le client (je pense), mais il peut également être démarré en mode intégré.

Pour référence, Spring Cloud Config --Embedding the Config Server Autour.

Code source

build.gradle


plugins {
  id 'org.springframework.boot' version '2.2.6.RELEASE'
  id 'io.spring.dependency-management' version '1.0.9.RELEASE'
  id 'java'
}

sourceCompatibility = '11'
repositories {
  mavenCentral()
}
ext {
  set('springCloudVersion', "Hoxton.SR3")
}
dependencies {
  implementation 'org.springframework.cloud:spring-cloud-config-server'
  implementation 'org.springframework.boot:spring-boot-starter-web'

  testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}
dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  }
}
test {
  useJUnitPlatform()
}

Seul le côté serveur est requis comme dépendance. Ce qui précède comprend également le Web pour vérifier l'opération.

/src/main/resources/bootstrap.yaml


spring:
  application:
    name: sample
  profiles:
    active: composite
  cloud:
    config:
      server:
        composite:
          - type: native
            search-locations: file:///C:/configtest/
        bootstrap: true
      prefix: config

Écrivez les paramètres dans </ font> </ b> bootstrap.yaml``` au lieu de appplication.yaml </ code> .

Ce qui suit est un contrôleur pour vérifier le fonctionnement.

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableConfigServer
@SpringBootApplication
@RestController
public class Application {
	@Value("${hoge.message}")
	private String message;

	@RequestMapping("/")
	public String home() {
		return "Hello World!" + message;
	}

	public static void main(String[] args) {
		new SpringApplicationBuilder(Application.class).web(WebApplicationType.SERVLET).run(args);
	}
}