练习 - 从 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 -
从服务总线队列接收消息
现在,我们将再次添加依赖项和配置。
为服务总线 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>