Übung – Empfangen von Nachrichten von Azure Service Bus

Abgeschlossen

Lassen Sie uns nun eine Spring Boot-Anwendung erstellen, die Nachrichten von einer Azure Service Bus-Warteschlange empfangen kann.

Erstellen eines Spring Boot-Projekts

Lassen Sie uns ein neues Terminalfenster öffnen, und genau wie bei der Spring Boot-Senderanwendung verwenden wir den Spring Initializr, um ein Spring Boot-Projekt zu erstellen.

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

Empfangen von Nachrichten aus einer Service Bus-Warteschlange

Auch hier fügen wir die Abhängigkeit und die Konfiguration hinzu.

Hinzufügen einer Maven-Abhängigkeit für den Service Bus-Spring Boot-Starter

Fügen Sie in der Datei pom.xml in Ihrer spring-receiver-application unter „dependencies“ den folgenden Befehl hinzu:

            <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-servicebus-jms-spring-boot-starter</artifactId>
                <version>2.3.3</version>
            </dependency>

Hinzufügen von Konfigurationsparametern

  1. Bearbeiten Sie im Ordner spring-receiver-application\src\main\resources die Datei application.properties, und fügen Sie die folgenden Parameter hinzu:

    server.port=9090
    
    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    
  2. Legen Sie die Eigenschaft spring.jms.servicebus.connection-string auf die Verbindungszeichenfolge für Ihren Service Bus-Namespace fest, die Sie zuvor gespeichert haben.

Hinzufügen von Code zum Empfangen von Nachrichten von Service Bus

Dann fügen wir Geschäftslogik hinzu, um Nachrichten von einer Service Bus-Warteschlange zu empfangen.

Erstellen Sie im Verzeichnis src/main/java/com/example/demo eine Datei namens ReceiveController.java mit dem folgenden Inhalt:

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

Lokales Ausführen der Anwendung

  1. Wechseln Sie zurück zum Stamm des Beispielordners spring-receiver-application, in dem sich die Datei pom.xml befindet, und führen Sie den folgenden Befehl aus, um Ihre Spring Boot-Anwendung zu starten. In diesem Schritt wird davon ausgegangen, dass Sie mvn auf Ihrem Windows-Computer installiert haben, und es sich in PATH befindet.

    mvn spring-boot:run
    
  2. Nachdem der Anwendungsstart abgeschlossen ist, werden die folgenden Protokollanweisungen im Konsolenfenster angezeigt.

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

    Das Erscheinen der Anweisungen zeigt an, dass die Spring Boot-Anwendung erfolgreich Nachrichten von der Service Bus-Warteschlange empfängt.

Anzeigen des kompletten Workflows in Aktion

Wenn die Absenderanwendung (aus Lerneinheit 4) noch ausgeführt wird, können Sie den folgenden Link auswählen, um eine Nachricht an die Service Bus-Warteschlange zu senden:

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

Ihre Empfängeranwendung empfängt die Nachricht aus der Service Bus-Warteschlange und zeigt sie in Ihrer Konsole an.

Received <HelloOnceAgainAndAgain>