Spring Cloud es el popular marco de servicio distribuido hoy en día, y proporciona muchos componentes útiles. Por ejemplo: Centro de configuración, descubrimiento de servicios de Eureka, bus de mensajes, mecanismo de fusibles, etc.
El centro de configuración es relativamente básico entre los muchos componentes de Spring Cloud. Proporciona administración unificada de archivos de configuración y puede cambiar fácilmente a entornos ininterrumpidos.
Su estructura específica es la siguiente:
Spring Cloud se basa en Spring Boot, y Spring Cloud es inseparable de Spring Boot, por lo que nuestros proyectos se basan en Spring Boot.
Por lo general, colocamos archivos de configuración en Git, que es fácil de usar para el control de versiones. A continuación, hablemos sobre la construcción del centro de configuración.
Construcción del centro de configuración
Primero, introduzca la dependencia de BOOT de Spring Boot y Spring Cloud:
<SpendencyManagement> <Spendencies> <Spendency> <MoupRoD> org.springframework.cloud </groupId> <AtifactId> Spring-Cloud-Dependencies </arfactId> <PROPESIDAD> EDGWARE.SR3 </Version> <POMY> POM> POMY> <COPE> IMPORT </COPE> </pendency> <SEPERENCE> <MoupRoD> org.springframework.boot </groupid> <artifactid> Spring-Boot-Dependencies </arfactid> <versión> 1.5.9. Release </versever> <proy> pom </pype> <cope> import </cope> </pendency> </pendencies> </pendencymanaement>>
Aquí tenemos que echar un vistazo más de cerca a la documentación oficial. La versión Finchley de Spring Cloud se basa en Spring Boot 2.0 y no puede funcionar con Spring Boot 1.5. La versión EDGWARE se basa en 1.5 y no funciona correctamente bajo 2.0. Todos deberían prestar atención a esto para evitar problemas innecesarios.
Aquí usamos el edgware de Spring Cloud y Spring Boot versión 1.5.
Luego vierta las dependencias necesarias de la siguiente manera:
<pendencies> <Spendency> <MoupRiD> org.springframework.boot </groupId> <artifactID> spring-boot-starter-web </artifactid> </pendency> <epardency> <grupid> org.springframework.cloudeDess </groupid> <artifactid> springcloud-config-server </artifactid> </arthactid> </dependency> </dependency> </dependency> </dependence> </dependency> </dependence> </dependence> </dependency> </dependency> </dependency> </dependence> </dependence>
Finalmente, escriba la clase de inicio del centro de configuración, de la siguiente manera:
@SpringBootApplication@EnleconFigServerPublic Class ConfigServerApplication {public static void main (string [] args) {springapplication.run (configServerApplication.class, args); }}@EnableConFigServer marca que este servicio es un servicio central de configuración. La información específica está configurada en el archivo Application.Properties:
#Server Port Server.port = 9000# La dirección de archivo de archivo de configuración Spring.cloud.config.server.git.uri = https: //github.com/liubo-tech/springcloud-properties# Archivo de archivo Temporal directorio de archivos Spring.cloud.config.server.git.basedir =/d:/config-repo-repo-repo-repo-repo-repo
Todos comprenden el puerto de servicio y la dirección GIT, y el tercero es el directorio donde se configuran los archivos temporales. Después de que se llame al centro de configuración, el centro de configuración extraerá el archivo de configuración de GIT y caché localmente. Este es el directorio para el caché de configuración, y también se puede configurar sin configuración y usar el sistema predeterminado. De esta manera, el centro de configuración está configurado y el clúster se puede construir a través de Nginx para que esté altamente disponible.
Los formatos de archivo de configuración de acceso son los siguientes:
//{Applicatationh}/SprofileHIlthegleglthware//{Labelyfrienfenciar a//{ApplicatationROTATATACIONATACIÓNTACIATIBLIBL}en:
Llamadas al cliente
En el pasado, los archivos de configuración se colocaron en proyectos, lo que lo hizo muy problemático al cambiar diferentes entornos, y también se expuso información confidencial de las configuraciones a los desarrolladores.
Esto se puede evitar utilizando un centro de configuración unificado, veamos cómo lo llama el cliente.
Primero, importe el paquete jar en el que se debe confiar, de la siguiente manera:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency></dependencies>
Mientras el JAR del cliente de configuración de Spring Cloud esté debajo del ClassPath del proyecto, obtendrá la configuración del Centro de configuración cuando se inicia el proyecto, y especificará el centro de configuración a través de la propiedad Spring.Cloud.Config.uri en el archivo de configuración de Bootstrap.
Esto hace que el proyecto del cliente debe tener un archivo bootstrap.yml o bootstrap.properties; de lo contrario, el cliente no cargará el archivo de configuración desde el centro de configuración.
Creamos bootstrap.properties de la siguiente manera:
#Configure la dirección central spring.cloud.config.uri = http: // localhost: 9000
Especifique la dirección del centro de configuración. En el ejemplo anterior, especificamos 9000 del puerto del centro de configuración. Configuramos el nombre de la aplicación en el archivo Application.Properties:
spring.application.name = eg-config
Nuestra aplicación se llama "por ejemplo, config". Cuando se inicia el proyecto, el archivo EG-config se cargará desde el centro de configuración. A continuación, hagamos un ejemplo, creemos un bean e inyecte valores desde el centro de configuración
@ComponentPublic Class myBean {@Value ("$ {my.name}") Nombre de cadena privada; public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; }}Donde el nombre cargará la propiedad my.name desde el centro de configuración. La clase de inicio es la siguiente:
@SpringBootApplicationPublic Splolic de la clase {public static void main (String [] args) {configuableApplicationContext ApplicationContext = SpringApplication.run (Application.Class, Args); // Obtenga el bean e imprima el campo Nombre myBean Bean = ApplicationContext.getBean (myBean.class); System.out.println (bean.getName ()); }} Después del inicio, los resultados de la impresión de la consola son los siguientes: test
Esto se introducirá en el centro de configuración. Para obtener más detalles, consulte el ejemplo del proyecto: https://github.com/liubo-tech/spring cloud-config.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.