Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido incorporará Azure App Configuration a una aplicación de Java Spring para centralizar el almacenamiento y la administración de la configuración de la aplicación de forma independiente del código.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Un almacén de App Configuration, como se muestra en el tutorial para crear un almacén.
- Un Kit de desarrollo de Java (JDK) admitido, versión 11.
- Apache Maven, versión 3.0 o posterior.
- Una aplicación de Spring Boot. Si no tiene ninguna, cree un proyecto de Maven con Spring Initializr. Asegúrese de seleccionar Proyecto de Maven y, en Dependencias, agregue la dependencia Web de Spring y, a continuación, seleccione Java versión 8 o posterior.
Agregar un par clave-valor
Agregue el siguiente par clave-valor al almacén de App Configuration y deje Etiqueta y Tipo de contenido con sus valores predeterminados. Para obtener más información sobre cómo agregar pares clave-valor a un almacén mediante Azure Portal o la CLI, vaya a Creación de un par clave-valor.
| Clave | Importancia |
|---|---|
| /application/config.message | Hola |
Conexión a un almacén de App Configuration
Ahora que tiene un almacén de App Configuration, puede utilizar el iniciador de la configuración de Azure de Spring Cloud para que su aplicación se comunique con el almacén de App Configuration que ha creado.
Para instalar el módulo de inicio de configuración de Spring Cloud de Azure, agregue la siguiente dependencia al archivo pom.xml :
<dependencies>
...
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>6.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
De forma predeterminada, la biblioteca se conecta al almacén de App Configuration mediante identidad administrada. Siga las instrucciones para asignar la credencial al rol Lector de datos de App Configuration. Asegúrese de dejar tiempo suficiente para que el permiso se propague antes de ejecutar la aplicación. A continuación, cree un nuevo archivo denominado AppConfigCredential.java y agregue las siguientes líneas:
import org.springframework.stereotype.Component; import com.azure.data.appconfiguration.ConfigurationClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.spring.cloud.appconfiguration.config.ConfigurationClientCustomizer; @Component public class AppConfigCredential implements ConfigurationClientCustomizer { @Override public void customize(ConfigurationClientBuilder builder, String endpoint) { builder.credential(new DefaultAzureCredentialBuilder().build()); } }Nota:
Además, puede usar la autenticación de Spring Cloud Azure para proporcionar información de autenticación. Al autenticarse con la configuración de Azure Spring, permite usar la misma autenticación para todas las bibliotecas de Azure Spring.
A continuación, cree la configuración de arranque, mediante la creación de un archivo
spring.factoriesen el directorioresources/META-INFy agregue las siguientes líneas y la actualización decom.example.MyApplicationcon el nombre de su aplicación y el paquete:org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.example.MyApplicationCree un nuevo archivo denominado application.properties en el directorio resources de la aplicación y agregue la siguiente línea al archivo.
spring.config.import=azureAppConfiguration spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT}
Lectura desde el almacén de App Configuration
Para usar el iniciador de configuración de Azure de Spring Cloud para que la aplicación se comunique con el almacén de App Configuration que cree, configure la aplicación mediante los pasos siguientes.
Cree un nuevo archivo java denominado MyProperties.java, y agregue las líneas siguientes:
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "config") public class MyProperties { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }Cree un nuevo archivo Java denominado HelloController.java y agregue las siguientes líneas:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @Autowired private MyProperties properties; @GetMapping public String getMessage() { return "Message: " + properties.getMessage(); } }Abra la prueba unitaria generada automáticamente y actualícela para deshabilitar Azure App Configuration, o la intentará cargar desde el servicio al ejecutar pruebas unitarias.
import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest(properties = "spring.cloud.azure.appconfiguration.enabled=false") class DemoApplicationTests { @Test void contextLoads() { } }
Compilación y ejecución de la aplicación en un entorno local
Establezca una variable de entorno denominada APP_CONFIGURATION_ENDPOINT y establézcala en la clave de acceso en el almacén de App Configuration. En la línea de comandos, ejecute el siguiente comando y reinicie el símbolo del sistema para que se aplique el cambio:
setx APP_CONFIGURATION_ENDPOINT "<endpoint-of-your-app-configuration-store>"Si usa Windows PowerShell, ejecute el siguiente comando:
$Env:APP_CONFIGURATION_ENDPOINT = "<endpoint-of-your-app-configuration-store>"Si usa macOS o Linux, ejecute el siguiente comando:
export APP_CONFIGURATION_ENDPOINT='<endpoint-of-your-app-configuration-store>'Abra el símbolo del sistema en el directorio raíz y ejecute los comandos siguientes para compilar la aplicación de Spring Boot con Maven y ejecutarla.
mvn clean package mvn spring-boot:runUna vez que se está ejecutando la aplicación, puede usar curl para probarla, por ejemplo:
curl -X GET http://localhost:8080/Verá el mensaje que escribió en el almacén de App Configuration.
Limpieza de recursos
Si no quiere seguir usando los recursos que se han creado en este artículo, elimine el grupo de recursos se que ha creado con el fin de evitar cargos.
Importante
La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos que contiene se eliminan permanentemente. Asegúrese de no eliminar accidentalmente el grupo de recursos o los recursos equivocados. Si creó los recursos para este artículo en un grupo de recursos que contenga los recursos que desee conservar, elimine cada recurso de forma individual desde su panel respectivo, en lugar de eliminar el grupo de recursos.
- Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
- En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
- En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
- Seleccione Eliminar grupo de recursos.
- Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y seleccione Eliminar.
Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.
Pasos siguientes
En este inicio rápido, ha creado un almacén de App Configuration y lo ha usado con una aplicación de Java Spring. Para más información, consulte Spring en Azure. Puede encontrar más preguntas en la documentación de referencia, que contiene todos los detalles sobre cómo funciona la biblioteca de Azure App Configuration de Spring Cloud. Para aprender a habilitar la aplicación de Java Spring y actualizar dinámicamente la configuración, continúe con el siguiente tutorial.