Exercice - Recevoir des messages en provenance d’Azure Service Bus
Nous allons maintenant créer une application Spring Boot qui peut recevoir des messages en provenance d’une file d’attente Azure Service Bus.
Créer un projet Spring Boot
Nous allons ouvrir une nouvelle fenêtre de terminal, et comme nous l’avons fait avec l’application Spring Boot expéditrice, nous utilisons Spring Initializr pour créer un projet 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 -
Recevoir des messages d’une file d’attente Service Bus
Là encore, nous ajoutons la dépendance et la configuration.
Ajouter la dépendance Maven pour Service Bus Spring Boot Starter
Dans le fichier pom.xml
de votre spring-receiver-application
, ajoutez la commande suivante sous les dépendances :
<!-- 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>
Ajouter les paramètres de configuration
Dans le dossier
spring-receiver-application\src\main\resources
, modifiez le fichierapplication.properties
, et ajoutez les paramètres suivants :server.port=9090 spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000 spring.jms.servicebus.pricing-tier=premium
Définissez la propriété
spring.jms.servicebus.connection-string
sur la chaîne de connexion sur votre espace de noms Service Bus, que vous avez enregistré précédemment.
Ajouter du code pour recevoir des messages en provenance de Service Bus
Ensuite, nous ajoutons une logique métier pour recevoir des messages en provenance d’une file d’attente Service Bus.
Dans le répertoire src/main/java/com/example/demo
, créez un fichier ReceiveController.java
dont le contenu est le suivant :
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 + ">");
}
}
Exécuter localement l’application
Revenez à la racine de l’exemple de dossier
spring-receiver-application
où se trouve le fichierpom.xml
, et exécutez la commande suivante pour démarrer votre application Spring Boot. Cette étape suppose que vous avez installémvn
sur votre ordinateur Windows à l’emplacementPATH
.mvn spring-boot:run
Une fois le démarrage de l’application terminé, les instructions de journal suivantes s’affichent dans la fenêtre de console.
Received <Hello> Received <HelloAgain> Received <HelloOnceAgain>
L’apparition des instructions indique que l’application Spring Boot reçoit des messages en provenance de la file d’attente Service Bus.
Voir l’ensemble du workflow en action
Si votre application expéditrice (de l’unité 4) est toujours en cours d’exécution, vous pouvez sélectionner le lien suivant pour envoyer un message à la file d’attente Service Bus :
http://localhost:8080/messages?message=HelloOnceAgainAndAgain
Votre application réceptrice reçoit le message de la file d’attente Service Bus et l’affiche dans votre console.
Received <HelloOnceAgainAndAgain>