Compartir vía


Inicio rápido: Creación de una aplicación de Java Spring con Azure App Configuration

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.

Prerrequisitos

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 Value
/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 :

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
</dependency>

<dependencyManagement>
    <dependencies>
        <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-dependencies</artifactId>
        <version>5.18.0</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Incorporación del código de la aplicación

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.

  1. Cree un nuevo archivo java denominado MyProperties.java, y agregue las líneas siguientes:

    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    @ConfigurationProperties(prefix = "config")
    public class MyProperties {
        private String message;
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    
  2. Cree un nuevo archivo Java denominado HelloController.java y agregue las siguientes líneas:

    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
        private final MyProperties properties;
    
        public HelloController(MyProperties properties) {
            this.properties = properties;
        }
    
        @GetMapping
        public String getMessage() {
            return "Message: " + properties.getMessage();
        }
    }
    
  3. En el archivo Java de la aplicación principal, agregue @EnableConfigurationProperties para permitir que la clase de propiedades de configuración de MyProperties.java surta efecto y regístrela en el contenedor de Spring.

    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    
    @SpringBootApplication
    @EnableConfigurationProperties(MyProperties.class)
    public class DemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    
  4. Use DefaultAzureCredential para autenticarse en el almacén de App Configuration. 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. 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());
        }
    }
    
  5. A continuación, cree la configuración de arranque, mediante la creación de un archivo spring.factories en el directorio resources/META-INF y agregue las siguientes líneas y la actualización de com.example.MyApplication con el nombre de su aplicación y el paquete:

    org.springframework.cloud.bootstrap.BootstrapConfiguration=\
    com.example.MyApplication
    
  6. 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() {
        }
    
    }
    
  7. Cree un nuevo archivo llamado bootstrap.properties en el directorio de recursos de la aplicación y agréguele la siguiente línea.

    spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT}
    
  8. 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>'
    

Compilación y ejecución de la aplicación en un entorno local

  1. 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:run
    
  2. Una 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 que creó aquí para 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 que no elimina por accidente 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.

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
  2. En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
  3. En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
  4. Seleccione Eliminar grupo de recursos.
  5. 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.