Oefening: berichten verzenden naar Azure Service Bus
In deze les maakt u een Spring Boot-toepassing waarmee berichten worden verzonden naar een Azure Service Bus-wachtrij. Voer de volgende stappen lokaal uit.
Een Spring Boot-project maken
Om ons Spring Boot-project te maken, gebruiken we Spring Initializr- met de volgende opdrachtregel:
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 -
Berichten verzenden naar een Service Bus-wachtrij
Nu gaan we enkele berichten verzenden naar een Service Bus-wachtrij.
De maven-afhankelijkheid voor Service Bus Spring Boot Starter toevoegen
Voeg in het pom.xml
bestand in uw spring-sender-application
de volgende opdracht toe onder afhankelijkheden:
<!-- 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>
De configuratieparameters toevoegen
Bewerk het
application.properties
bestand in de mapspring-sender-application\src\main\resources
en voeg de volgende parameters toe:spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000 spring.jms.servicebus.pricing-tier=premium
Stel de eigenschap
spring.jms.servicebus.connection-string
in op de verbindingsreeks voor uw Service Bus-naamruimte, die u eerder hebt opgeslagen.
Code toevoegen om berichten te verzenden naar Service Bus
Vervolgens voegen we de bedrijfslogica toe om berichten naar een Service Bus-wachtrij te verzenden.
Maak in de map src/main/java/com/example/demo
een SendController.java
-bestand met de volgende inhoud:
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;
}
}
De toepassing lokaal uitvoeren
Ga terug naar de hoofdmap van de voorbeeldmap
spring-sender-application
waarin hetpom.xml
bestand zich bevindt en voer de volgende opdracht uit om de Spring Boot-toepassing te starten. In deze stap wordt ervan uitgegaan dat umvn
op uw Windows-computer hebt geïnstalleerd en dat deze zich in dePATH
bevindt.mvn spring-boot:run
Nadat het opstarten van de toepassing is voltooid, kunt u de volgende koppelingen selecteren om berichten naar de Service Bus-wachtrij te verzenden.
http://localhost:8080/messages?message=Hello
http://localhost:8080/messages?message=HelloAgain
http://localhost:8080/messages?message=HelloOnceAgain
U kunt de tekenreekswaarde in de parameter van de berichtquery wijzigen en tekst naar de Service Bus-wachtrij verzenden.
In de browser wordt weergegeven wat wordt doorgegeven als de querystringparameter van het bericht, wat betekent dat de Service Bus het bericht accepteert.
De berichten in de Service Bus-wachtrij bekijken
Notitie
Hoewel het weergeven van de berichten helpt de verzendzijde van de berichten te begrijpen, is deze stap optioneel.
Deze berichten worden ontvangen in de volgende stap van deze zelfstudie.
U kunt doorgaan met het weergeven van de berichten in De Service Bus Explorer in Azure Portal:
Ga terug naar het Azure-portaal en selecteer Wachtrijen in het linkermenu onder Entiteiten.
Selecteer de juiste wachtrij. De wachtrij voor deze demo is bijvoorbeeld test-queue-jms.
Selecteer in het linkerdeelvenster Service Bus Explorer.
Selecteer Van beginbekijken. U ziet alle drie de berichten die u hebt verzonden met behulp van HTTP-opdrachten.
Selecteer een bericht om de hoofdtekst van het bericht in het onderste deelvenster weer te geven.