Övning – Skicka meddelanden till Azure Service Bus

Slutförd

I den här lektionen skapar du ett Spring Boot-program som skickar meddelanden till en Azure Service Bus-kö. Slutför följande steg lokalt.

Skapa ett Spring Boot-projekt

För att skapa vårt Spring Boot-projekt använder vi Spring Initializr med följande kommandorad:

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 -

Skicka meddelanden till en Service Bus-kö

Nu ska vi skicka några meddelanden till en Service Bus-kö.

Lägg till maven-beroendet för Service Bus Spring Boot Starter

pom.xml I filen i lägger spring-sender-applicationdu till följande kommando under beroenden:

		<!-- 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>

Lägg till konfigurationsparametrarna

  1. spring-sender-application\src\main\resources I mappen redigerar du application.properties filen och lägger till följande parametrar:

    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. spring.jms.servicebus.connection-string Ange egenskapen till anslutningssträng till service bus-namnområdet som du sparade tidigare.

Lägga till kod för att skicka meddelanden till Service Bus

Sedan lägger vi till affärslogik för att skicka meddelanden till en Service Bus-kö.

I katalogen src/main/java/com/example/demoskapar du en SendController.java fil med följande innehåll:

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;
    }
}

Köra appen lokalt

  1. Växla tillbaka till roten i exempelmappen spring-sender-application pom.xml där filen finns och kör följande kommando för att starta Spring Boot-programmet. Det här steget förutsätter att du har mvn installerat på din Windows-dator och att det finns i PATH.

    mvn spring-boot:run
    
  2. När programmet har startats kan du välja följande länkar för att skicka meddelanden till Service Bus-kön.

    http://localhost:8080/messages?message=Hello
    
    http://localhost:8080/messages?message=HelloAgain
    
    http://localhost:8080/messages?message=HelloOnceAgain
    

    Du kan ändra strängvärdet i meddelandefrågeparametern och skicka valfri text till Service Bus-kön.

    Webbläsaren visar det som skickas som frågesträngsparametern för meddelandet, vilket innebär att Service Bus accepterar meddelandet.

Se meddelandena i Service Bus-kön

Kommentar

Även om det är valfritt att visa meddelandena så är det här steget valfritt.

Dessa meddelanden tas emot i nästa steg i den här självstudien.

Du kan fortsätta att visa meddelandena i Service Bus-utforskaren i Azure-portalen:

  1. I Azure-portalen väljer du Köer på den vänstra menyn under Entiteter.

  2. Välj lämplig kö. Kön för den här demonstrationen är till exempel test-queue-jms.

  3. I den vänstra rutan väljer du Service Bus Explorer.

  4. Välj Granska från början. Du bör se alla tre meddelanden som du har skickat med HJÄLP av HTTP-kommandon.

    Screenshot of the Service Bus explorer peek experience.

  5. Välj ett meddelande om du vill se meddelandetexten i det nedre fönstret.

    Screenshot of the Service Bus explorer with peeked messages.