Ćwiczenie — odbieranie komunikatów z usługi Azure Service Bus
Teraz utwórzmy aplikację Spring Boot, która może odbierać komunikaty z kolejki usługi Azure Service Bus.
Tworzenie projektu Spring Boot
Otwórzmy nowe okno terminalu i tak jak zrobiliśmy to w przypadku aplikacji nadawcy Spring Boot, użyjemy Spring Initializr do utworzenia projektu 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 -
Odbieranie komunikatów z kolejki usługi Service Bus
Ponownie dodamy zależność i konfigurację.
Dodawanie zależności narzędzia maven dla szablonu startowego Spring Boot usługi Service Bus
W pliku pom.xml
w spring-receiver-application
dodaj następujące polecenie w obszarze zależności:
<!-- 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>
Dodawanie parametrów konfiguracji
W folderze
spring-receiver-application\src\main\resources
zmodyfikuj plikapplication.properties
, dodaj następujące parametry:server.port=9090 spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000 spring.jms.servicebus.pricing-tier=premium
Ustaw właściwość
spring.jms.servicebus.connection-string
na ciąg połączenia do przestrzeni nazw usługi Service Bus, którą zapisałeś wcześniej.
Dodawanie kodu do odbierania komunikatów z usługi Service Bus
Następnie dodajemy logikę biznesową do odbierania komunikatów z kolejki usługi Service Bus.
W katalogu src/main/java/com/example/demo
utwórz plik ReceiveController.java
zawierający następującą zawartość:
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 + ">");
}
}
Uruchamianie aplikacji lokalnie
Wróć do katalogu głównego przykładowego folderu
spring-receiver-application
, w którym znajduje się plikpom.xml
, i uruchom następujące polecenie, aby uruchomić aplikację Spring Boot. W tym kroku przyjęto założenie, że na komputerze z systemem Windows zainstalowanomvn
i znajduje się on wPATH
.mvn spring-boot:run
Gdy aplikacja się uruchomi, w oknie konsoli zostaną wyświetlone następujące komunikaty dziennika.
Received <Hello> Received <HelloAgain> Received <HelloOnceAgain>
Wygląd komunikatów wskazuje, że aplikacja Spring Boot pomyślnie odbiera wiadomości z kolejki Service Bus.
Zobacz cały przepływ pracy w akcji
Jeśli aplikacja nadawcy z jednostki 4 jest nadal uruchomiona, możesz wybrać następujący link, aby wysłać komunikat do kolejki Service Bus.
http://localhost:8080/messages?message=HelloOnceAgainAndAgain
Aplikacja odbiorcy odbiera komunikat z kolejki usługi Service Bus i wyświetla go w konsoli.
Received <HelloOnceAgainAndAgain>