Esercitazione: Ricevere messaggi dal bus di servizio di Azure
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
Nella cartella
spring-receiver-application\src\main\resources
, modificare il fileapplication.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
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
Tornare alla radice della cartella di esempio
spring-receiver-application
in cui si trova il filepom.xml
ed eseguire il comando seguente per avviare l'applicazione Spring Boot. Questo passaggio presuppone che sia stato installatomvn
nel computer Windows e che si trovi inPATH
.mvn spring-boot:run
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>