練習 - 接收來自 Azure 服務匯流排的訊息

已完成

現在讓我們建立一個能夠從 Azure 服務匯流排佇列接收訊息的 Spring Boot 應用程式。

建立 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 Spring Boot Starter 新增 maven 相依性

spring-receiver-applicationpom.xml 檔案中,於相依性底下新增下列命令:

		<!-- 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 屬性設定為您稍早儲存的服務匯流排命名空間的連接字串。

新增程式碼以接收來自服務匯流排的訊息

接下來,我們會新增商務邏輯,以接收來自服務匯流排佇列的訊息。

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. 切換回 pom.xml 檔案所在範例 spring-receiver-application 資料夾的根目錄,然後執行下列命令來啟動 Spring Boot 應用程式。 此步驟假設您已在 Windows 電腦上安裝 mvn,而且其位於 PATH 中。

    mvn spring-boot:run
    
  2. 應用程式啟動完成後,您會在主控台視窗中看到下列記錄陳述式。

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

    陳述式的外觀會指出 Spring Boot 應用程式正在成功接收來自服務匯流排佇列的訊息。

查看作用中的整個工作流程

如果您的傳送者應用程式 (單元 4) 仍在執行中,您可選取下列連結,以將訊息傳送至服務匯流排佇列:

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

接收者應用程式會接收到來自服務匯流排佇列的訊息並在主控台中顯示該訊息。

Received <HelloOnceAgainAndAgain>