Exercice - Envoyer des messages à Azure Service Bus
Dans cette unité, vous créez une application Spring Boot qui envoie des messages à une file d’attente Azure Service Bus. Effectuez les étapes suivantes localement.
Créer un projet Spring Boot
Pour créer notre projet Spring Boot, nous allons utiliser Spring Initializr avec la ligne de commande suivante :
curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web -d baseDir=spring-sender-application -d bootVersion=3.3.0.RELEASE -d javaVersion=1.8 | tar -xzvf -
Envoyer des messages à une file d’attente Service Bus
Envoyons à présent des messages à une file d’attente Service Bus.
Ajouter la dépendance Maven pour Service Bus Spring Boot Starter
Dans le fichier pom.xml
de votre spring-sender-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-sender-application\src\main\resources
, modifiez le fichierapplication.properties
, et ajoutez les paramètres suivants :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 envoyer des messages à Service Bus
Ensuite, nous allons ajouter la logique métier pour envoyer des messages à une file d’attente Service Bus.
Dans le répertoire src/main/java/com/example/demo
, créez un fichier SendController.java
avec le contenu suivant :
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SendController {
private static final String queue = "test-queue-jms";
@Autowired
private JmsTemplate jmsTemplate;
@GetMapping("/messages")
public String postMessage(@RequestParam String message) {
jmsTemplate.send(queue, s -> s.createTextMessage(message));
return message;
}
}
Exécuter localement l’application
Revenez à la racine de l’exemple de dossier
spring-sender-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é, vous pouvez sélectionner les liens suivants pour envoyer des messages à la file d’attente Service Bus.
http://localhost:8080/messages?message=Hello
http://localhost:8080/messages?message=HelloAgain
http://localhost:8080/messages?message=HelloOnceAgain
Vous pouvez changer la valeur de chaîne dans le paramètre de requête de message et envoyer n’importe quel texte à la file d’attente Service Bus.
Le navigateur affiche tout ce qui est passé en tant que paramètre de chaîne de requête de message, ce qui implique que le Service Bus accepte le message.
Consulter les messages dans la file d’attente Service Bus
Notes
Même si l’affichage des messages permet de comprendre le côté envoi des messages, cette étape est facultative.
Ces messages seront reçus à l’étape suivante de ce tutoriel.
Vous pouvez continuer et afficher les messages dans Service Bus Explorer dans le portail Azure :
De retour dans le Portail Azure, sélectionnez Files d’attente dans le menu de gauche sous Entités.
Sélectionnez la file d’attente appropriée. Par exemple, dans cette démonstration, la file d’attente est test-queue-jms.
Dans le volet de gauche, sélectionnez Service Bus Explorer.
Sélectionnez Aperçu depuis le début. Vous devriez voir les trois messages que vous avez envoyés à l’aide de commandes HTTP.
Sélectionnez un message pour afficher le corps du message dans le volet inférieur.