Упражнение. Получение сообщений из служебной шины Azure

Завершено

Теперь создадим приложение Spring Boot, которое может получать сообщения из очереди служебной шины Azure.

Создание проекта Spring Boot

Давайте открываем новое окно терминала, и так же, как и с приложением Spring Boot отправителя, мы используем Spring Initializr для создания проекта 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 -

Получение сообщений из очереди Service Bus

Здесь снова мы добавим зависимость и конфигурацию.

Добавление зависимости maven для начального запуска служебной шины Spring Boot

В файле pom.xml в вашем spring-receiver-applicationдобавьте следующую команду в раздел dependencies:

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

Добавление параметров конфигурации

  1. В папке spring-receiver-application\src\main\resources измените файл application.properties, добавьте следующие параметры:

    server.port=9090
    
    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. Задайте для свойства spring.jms.servicebus.connection-string строку подключения в пространство имен служебной шины, сохраненное ранее.

Добавьте код для получения сообщений из шины сервиса

Затем мы добавим бизнес-логику для обработки сообщений из очереди Service Bus.

В каталоге src/main/java/com/example/demo создайте файл ReceiveController.java со следующим содержимым:

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

Локальное запуск приложения

  1. Вернитесь в корневой каталог примера spring-receiver-application папку, в которой находится файл pom.xml, и выполните следующую команду, чтобы запустить приложение Spring Boot. На этом шаге предполагается, что на компьютере Windows установлен mvn, и он находится в PATH.

    mvn spring-boot:run
    
  2. После завершения запуска приложения вы увидите следующие записи журнала в окне консоли.

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

    Внешний вид утверждений указывает на то, что приложение Spring Boot успешно получает сообщения из очереди Service Bus.

Просмотр всего рабочего процесса в действии

Если приложение отправителя (из модуля 4) по-прежнему запущено, можно выбрать следующую ссылку, чтобы отправить сообщение в очередь Service Bus:

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

Приложение-получатель получает сообщение из очереди служебной шины и отображает его в консоли.

Received <HelloOnceAgainAndAgain>