Ejercicio: recibir mensajes de Azure Service Bus

Completado

Ahora vamos a crear una aplicación de Spring Boot que pueda recibir mensajes de una cola de Azure Service Bus.

Creación de un proyecto de Spring Boot

Vamos a abrir una nueva ventana de terminal y, al igual que hicimos con la aplicación de Spring Boot de emisor, usaremos Spring Initializr para crear un proyecto de Spring Boot.

curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web -d baseDir=spring-receiver-application -d bootVersion=2.4.1.RELEASE -d javaVersion=1.8 | tar -xzvf -

Recibir mensajes de una cola de Service Bus

En este caso, agregaremos la dependencia y la configuración.

Adición de la dependencia de Maven para el inicio de Spring Boot de Service Bus

En el archivo pom.xml de spring-receiver-application, agregue el comando siguiente en las dependencias:

            <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-servicebus-jms-spring-boot-starter</artifactId>
                <version>2.3.3</version>
            </dependency>

Adición de los parámetros de configuración

  1. En la carpeta spring-receiver-application\src\main\resources, edite el archivo application.properties y agregue estos parámetros:

    server.port=9090
    
    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    
  2. Establezca la propiedad spring.jms.servicebus.connection-string en la cadena de conexión al espacio de nombres de Service Bus, que guardó anteriormente.

Adición de código para recibir mensajes de Service Bus

Ahora agregaremos la lógica de negocios para recibir mensajes de una cola de Service Bus.

En el directorio src/main/java/com/example/demo, cree un archivo ReceiveController.java que tenga el contenido siguiente:

package com.example.demo;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class ReceiveController {
    
    @JmsListener(destination = "test-queue-jms")
    public void receiveMessage(String message) {
        System.out.println("Received <" + message + ">");
    }
}

Ejecución de la aplicación de forma local

  1. Vuelva a la raíz de la carpeta spring-receiver-application de ejemplo en la que se encuentra el archivo pom.xml y ejecute el comando siguiente para iniciar la aplicación de Spring Boot. Para este paso, se presupone que tiene mvn instalado en el equipo Windows y que se encuentra en PATH.

    mvn spring-boot:run
    
  2. Una vez que complete el inicio de la aplicación, verá las instrucciones de registro siguientes en la ventana de la consola.

    Received <Hello>
    Received <HelloAgain>
    Received <HelloOnceAgain>
    

    La aparición de estas instrucciones indica que la aplicación de Spring Boot recibe mensajes correctamente de la cola de Service Bus.

Vista del flujo de trabajo completo en acción

Si la aplicación emisora (de la unidad 4) todavía se está ejecutando, puede seleccionar el vínculo siguiente para enviar un mensaje a la cola de Service Bus:

http://localhost:8080/messages?message=HelloOnceAgainAndAgain

La aplicación receptora recibe el mensaje de la cola de Service Bus y lo muestra en la consola.

Received <HelloOnceAgainAndAgain>