練習 - 接收來自 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-application
的 pom.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>
新增設定參數
在
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
將
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 + ">");
}
}
在本機執行應用程式
切換回
pom.xml
檔案所在範例spring-receiver-application
資料夾的根目錄,然後執行下列命令來啟動 Spring Boot 應用程式。 此步驟假設您已在 Windows 電腦上安裝mvn
,而且其位於PATH
中。mvn spring-boot:run
應用程式啟動完成後,您會在主控台視窗中看到下列記錄陳述式。
Received <Hello> Received <HelloAgain> Received <HelloOnceAgain>
陳述式的外觀會指出 Spring Boot 應用程式正在成功接收來自服務匯流排佇列的訊息。
查看作用中的整個工作流程
如果您的傳送者應用程式 (單元 4) 仍在執行中,您可選取下列連結,以將訊息傳送至服務匯流排佇列:
http://localhost:8080/messages?message=HelloOnceAgainAndAgain
接收者應用程式會接收到來自服務匯流排佇列的訊息並在主控台中顯示該訊息。
Received <HelloOnceAgainAndAgain>