Exercice - Recevoir des messages en provenance d’Azure Service Bus

Effectué

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

  1. Dans le dossier spring-receiver-application\src\main\resources, modifiez le fichier application.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
    
  2. 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

  1. Revenez à la racine de l’exemple de dossier spring-receiver-application où se trouve le fichier pom.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’emplacement PATH.

    mvn spring-boot:run
    
  2. 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>