Esercitazione: Ricevere messaggi dal bus di servizio di Azure

Completato

Creare quindi un'applicazione Spring Boot in grado di ricevere messaggi da una coda del bus di servizio di Microsoft Azure.

Creare un progetto Spring Boot

Aprire una nuova finestra del terminale e analogamente a quanto fatto con l'applicazione mittente di Spring Boot, usare Spring Initializr per creare un progetto Spring Boot.

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

Ricevere messaggi da una coda del bus di servizio

Anche in questo caso, vengono aggiunte la dipendenza e i parametri di configurazione.

Aggiungere la dipendenza Maven per lo starter di Spring Boot del bus di servizio

Nel file pom.xml in spring-receiver-application aggiungere il comando seguente sotto le dipendenze:

		<!-- https://mvnrepository.com/artifact/com.azure.spring/spring-cloud-azure-starter-servicebus-jms -->
		<dependency>
		    <groupId>com.azure.spring</groupId>
		    <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
		    <version>5.18.0</version>
		</dependency>

Aggiungere i parametri di configurazione

  1. Nella cartella spring-receiver-application\src\main\resources, modificare il file application.properties e aggiungere i parametri seguenti:

    server.port=9090
    
    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. Impostare la proprietà spring.jms.servicebus.connection-string sulla stringa di connessione allo spazio dei nomi del bus di servizio salvato in precedenza.

Aggiungere codice per ricevere messaggi dal bus di servizio

A questo punto viene aggiunta la logica di business per ricevere i messaggi da una coda del bus di servizio.

Nella directory src/main/java/com/example/demo creare un file ReceiveController.java con il contenuto seguente:

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 + ">");
    }
}

Eseguire l'applicazione in locale

  1. Tornare alla radice della cartella di esempio spring-receiver-application in cui si trova il file pom.xml ed eseguire il comando seguente per avviare l'applicazione Spring Boot. Questo passaggio presuppone che sia stato installato mvn nel computer Windows e che si trovi in PATH.

    mvn spring-boot:run
    
  2. Al termine dell'avvio dell'applicazione, nella finestra della console verranno visualizzate le istruzioni di registro seguenti.

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

    L'aspetto delle istruzioni indica che l'applicazione Spring Boot riceve correttamente messaggi dalla coda del bus di servizio.

Visualizzare l'intero flusso di lavoro in esecuzione

Se l'applicazione mittente, creata nell'unità 4, è ancora in esecuzione, è possibile selezionare il collegamento seguente per inviare un messaggio alla coda del bus di servizio,

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

L'applicazione ricevente riceve il messaggio dalla coda del bus di servizio e lo visualizza nella console.

Received <HelloOnceAgainAndAgain>