Lectura de propiedades del servidor de configuración de Spring Cloud
Esta guía explica cómo su aplicación Quarkus puede leer las propiedades de configuración en tiempo de ejecución desde el Servidor de Configuración de Spring Cloud.
Requisitos previos
To complete this guide, you need:
-
Roughly 15 minutes
-
An IDE
-
JDK 11+ installed with
JAVA_HOME
configured appropriately -
Apache Maven 3.9.3
-
Optionally the Quarkus CLI if you want to use it
-
Optionally Mandrel or GraalVM installed and configured appropriately if you want to build a native executable (or Docker if you use a native container build)
Solución
Le recomendamos que siga las instrucciones de las siguientes secciones y cree la aplicación paso a paso.
Poner en marcha un servidor de configuración
Para poner en marcha el Config Server necesario para esta guía, siga las instrucciones indicadas aquí. El resultado final de ese proceso es un Config Server en funcionamiento que proporcionará el valor Hello world
para una propiedad de configuración llamada message
cuando la aplicación que consulta el servidor se llama a-bootiful-client
.
Creación del proyecto Maven
En primer lugar, necesitamos un nuevo proyecto. Cree un nuevo proyecto con el siguiente comando:
For Windows users:
-
If using cmd, (don’t use backward slash
\
and put everything on the same line) -
If using Powershell, wrap
-D
parameters in double quotes e.g."-DprojectArtifactId=spring-cloud-config-quickstart"
Este comando genera un proyecto que importa la extensión spring-cloud-config-client
.
Si ya tienes configurado tu proyecto Quarkus, puedes añadir la extensión spring-cloud-config-client
a tu proyecto ejecutando el siguiente comando en el directorio base de tu proyecto:
quarkus extension add 'spring-cloud-config-client'
./mvnw quarkus:add-extension -Dextensions='spring-cloud-config-client'
./gradlew addExtension --extensions='spring-cloud-config-client'
Esto añadirá lo siguiente a su archivo de construcción:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-spring-cloud-config-client</artifactId>
</dependency>
implementation("io.quarkus:quarkus-spring-cloud-config-client")
GreetingController
First, create a simple GreetingResource
Jakarta REST resource in the src/main/java/org/acme/spring/cloud/config/client/GreetingResource.java
file that looks like:
package org.acme.spring.spring.cloud.config.client;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello";
}
}
Como queremos utilizar propiedades de configuración obtenidas del Servidor de Configuración, actualizaremos el GreetingResource
para inyectar la propiedad message
. El código actualizado tendrá el siguiente aspecto:
package org.acme.spring.spring.cloud.config.client;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@Path("/hello")
public class GreetingResource {
@ConfigProperty(name = "message", defaultValue="hello default")
String message;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return message;
}
}
Configuración de la aplicación
Quarkus proporciona varios controles de configuración bajo la raíz quarkus.spring-cloud-config
. Para los propósitos de esta guía, nuestra aplicación Quarkus va a ser configurada en application.properties
como sigue:
# use the same name as the application name that was configured when standing up the Config Server
quarkus.application.name=a-bootiful-client
# enable retrieval of configuration from the Config Server - this is off by default
quarkus.spring-cloud-config.enabled=true
# configure the URL where the Config Server listens to HTTP requests - this could have been left out since http://localhost:8888 is the default
quarkus.spring-cloud-config.url=http://localhost:8888
Empaquetar y ejecutar la aplicación
Ejecuta la aplicación con:
quarkus dev
./mvnw quarkus:dev
./gradlew --console=plain quarkusDev
Abra su navegador en http://localhost:8080/greeting.
El resultado debe ser: Hello world
ya que es el valor obtenido del servidor Spring Cloud Config.
Ejecutar la aplicación como un ejecutable nativo
Por supuesto, puedes crear una imagen nativa siguiendo las instrucciones de la guía Construir un ejecutable nativo.
Más guías de Spring
Quarkus tiene más características de compatibilidad con Spring. Consulte las siguientes guías para obtener más detalles:
Referencia del cliente Spring Cloud Config
Configuration property fixed at build time - All other configuration properties are overridable at runtime
Type |
Default |
|
---|---|---|
If enabled, will try to read the configuration from a Spring Cloud Config Server Environment variable: Show more |
boolean |
|
If set to true, the application will not stand up if it cannot obtain configuration from the Config Server Environment variable: Show more |
boolean |
|
The Base URI where the Spring Cloud Config Server is available Environment variable: Show more |
string |
|
The label to be used to pull remote configuration properties. The default is set on the Spring Cloud Config Server (generally "master" when the server uses a Git backend). Environment variable: Show more |
string |
|
The amount of time to wait when initially establishing a connection before giving up and timing out. Specify Environment variable: Show more |
|
|
The amount of time to wait for a read on a socket before an exception is thrown. Specify Environment variable: Show more |
|
|
The username to be used if the Config Server has BASIC Auth enabled Environment variable: Show more |
string |
|
The password to be used if the Config Server has BASIC Auth enabled Environment variable: Show more |
string |
|
TrustStore to be used containing the SSL certificate used by the Config server Can be either a classpath resource or a file system path Environment variable: Show more |
path |
|
Password of TrustStore to be used containing the SSL certificate used by the Config server Environment variable: Show more |
string |
|
KeyStore to be used containing the SSL certificate for authentication with the Config server Can be either a classpath resource or a file system path Environment variable: Show more |
path |
|
Password of KeyStore to be used containing the SSL certificate for authentication with the Config server Environment variable: Show more |
string |
|
Password to recover key from KeyStore for SSL client authentication with the Config server If no value is provided, the key-store-password will be used Environment variable: Show more |
string |
|
When using HTTPS and no keyStore has been specified, whether to trust all certificates Environment variable: Show more |
boolean |
|
The profiles to use for lookup Environment variable: Show more |
list of string |
|
Custom headers to pass the Spring Cloud Config Server when performing the HTTP request Environment variable: Show more |
|
About the Duration format
To write duration values, use the standard You can also use a simplified format, starting with a number:
In other cases, the simplified format is translated to the
|