page_type | languages | products | description | urlFragment | ||
---|---|---|---|---|---|---|
sample |
|
|
Azure Spring Cloud Sample project for Service Bus Operation client library |
azure-spring-cloud-sample-service-bus-operation |
This code sample demonstrates how to use ServiceBusTopicOperation.java and ServiceBusQueueOperation.java.
Running this sample will be charged by Azure. You can check the usage and bill at this link.
- Create Azure Service Bus namespace, queue and topic. Please see how to create.
-
Update application.yaml.
spring: cloud: azure: servicebus: connection-string: [servicebus-namespace-connection-string]
-
Update queue name in QueueController.java, topic name and subscription in TopicController.java.
-
Run the
mvn spring-boot:run
in the root of the code sample to get the app running. -
Send a POST request to service bus queue
$ curl -X POST localhost:8080/queues?message=hello
-
Verify in your app’s logs that a similar message was posted:
New message received: 'hello' Message 'hello' successfully checkpointed
-
Send a POST request to service bus topic
$ curl -X POST localhost:8080/topics?message=hello
-
Verify in your app’s logs that a similar message was posted:
New message received: 'hello' Message 'hello' successfully checkpointed
-
Delete the resources on Azure Portal to avoid unexpected charges.
The following table illustrates how Spring message headers are mapped to Service Bus message headers and properties. When creat a message, developers can specify the header or property of a Service Bus message by below constants.
@Autowired
ServiceBusTopicOperation topicOperation;
@PostMapping("/topics")
public String send(@RequestParam("message") String message) {
this.topicOperation.sendAsync(TOPIC_NAME,
MessageBuilder.withPayload(message)
.setHeader(SESSION_ID, "group1")
.build());
return message;
}
For some Service Bus headers that can be mapped to multiple Spring header constants, the priority of different Spring headers is listed.
Service Bus Message Headers and Properties | Spring Message Header Constants | Type | Priority Number (Descending priority) |
---|---|---|---|
ContentType | org.springframework.messaging.MessageHeaders.CONTENT_TYPE | String | N/A |
CorrelationId | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.CORRELATION_ID | String | N/A |
MessageId | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.MESSAGE_ID | String | 1 |
MessageId | com.azure.spring.integration.core.AzureHeaders.RAW_ID | String | 2 |
MessageId | org.springframework.messaging.MessageHeaders.ID | UUID | 3 |
PartitionKey | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.PARTITION_KEY | String | N/A |
ReplyTo | org.springframework.messaging.MessageHeaders.REPLY_CHANNEL | String | N/A |
ReplyToSessionId | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.REPLY_TO_SESSION_ID | String | N/A |
ScheduledEnqueueTimeUtc | com.azure.spring.integration.core.AzureHeaders.SCHEDULED_ENQUEUE_MESSAGE | Integer | 1 |
ScheduledEnqueueTimeUtc | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.SCHEDULED_ENQUEUE_TIME | Instant | 2 |
SessionID | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.SESSION_ID | String | N/A |
TimeToLive | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.TIME_TO_LIVE | Duration | N/A |
To | com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders.TO | String | N/A |