Oefening: berichten ontvangen van Azure Service Bus

Voltooid

Nu gaan we een Spring Boot-toepassing maken die berichten van een Azure Service Bus-wachtrij kan ontvangen.

Een Spring Boot-project maken

Laten we een nieuw terminalvenster openen en net als bij de afzender van de Spring Boot-toepassing gebruiken we de Spring Initializr om een Spring Boot-project te maken.

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 -

Berichten ontvangen van een Service Bus-wachtrij

Hier voegen we nogmaals de afhankelijkheid en configuratie toe.

De maven-afhankelijkheid voor Service Bus Spring Boot Starter toevoegen

Voeg in het bestand in het pom.xml spring-receiver-applicationbestand de volgende opdracht toe onder afhankelijkheden:

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

De configuratieparameters toevoegen

  1. Bewerk het application.properties bestand in de spring-receiver-application\src\main\resources map en voeg de volgende parameters toe:

    server.port=9090
    
    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    
  2. Stel de spring.jms.servicebus.connection-string eigenschap in op de verbindingsreeks op uw Service Bus-naamruimte, die u eerder hebt opgeslagen.

Code toevoegen voor het ontvangen van berichten van Service Bus

Vervolgens voegen we bedrijfslogica toe om berichten te ontvangen van een Service Bus-wachtrij.

Maak in de src/main/java/com/example/demo map een ReceiveController.java bestand met de volgende inhoud:

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

De toepassing lokaal uitvoeren

  1. Ga terug naar de hoofdmap van de voorbeeldmap spring-receiver-application waar het pom.xml bestand zich bevindt en voer de volgende opdracht uit om uw Spring Boot-toepassing te starten. In deze stap wordt ervan uitgegaan dat u op uw Windows-computer hebt mvn geïnstalleerd en dat deze zich in de PATH.

    mvn spring-boot:run
    
  2. Nadat het opstarten van de toepassing is voltooid, ziet u de volgende logboekinstructies in het consolevenster.

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

    Het uiterlijk van de instructies geeft aan dat de Spring Boot-toepassing berichten ontvangt van de Service Bus-wachtrij.

De volledige werkstroom in actie bekijken

Als uw afzendertoepassing (van les 4) nog steeds wordt uitgevoerd, kunt u de volgende koppeling selecteren om een bericht naar de Service Bus-wachtrij te verzenden:

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

Uw ontvangertoepassing ontvangt het bericht uit de Service Bus-wachtrij en wordt weergegeven in uw console.

Received <HelloOnceAgainAndAgain>