Esercitazione: Inviare messaggi al bus di servizio di Azure
In questa unità viene creata un'applicazione Spring Boot che invia messaggi a una coda del bus di servizio di Azure. I passaggi seguenti sono completati in locale.
Creare un progetto Spring Boot
Per creare un progetto Spring Boot, si usa Spring Initializr con la riga di comando seguente:
curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web -d baseDir=spring-sender-application -d bootVersion=3.3.0.RELEASE -d javaVersion=1.8 | tar -xzvf -
Inviare messaggi a una coda del bus di servizio
A questo punto, è possibile inviare messaggi a una coda del bus di servizio.
Aggiungere la dipendenza Maven per lo starter di Spring Boot del bus di servizio
Nel file pom.xml
in spring-sender-application
aggiungere il comando seguente sotto le dipendenze:
<!-- 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>
Aggiungere i parametri di configurazione
Nella cartella
spring-sender-application\src\main\resources
, modificare il fileapplication.properties
e aggiungere i parametri seguenti:spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000 spring.jms.servicebus.pricing-tier=premium
Impostare la proprietà
spring.jms.servicebus.connection-string
sulla stringa di connessione allo spazio dei nomi del bus di servizio salvato in precedenza.
Aggiungere codice per inviare messaggi al bus di servizio
Viene quindi aggiunta la logica di business per l'invio di messaggi a una coda del bus di servizio.
Nella directory src/main/java/com/example/demo
creare un file SendController.java
con il contenuto seguente:
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SendController {
private static final String queue = "test-queue-jms";
@Autowired
private JmsTemplate jmsTemplate;
@GetMapping("/messages")
public String postMessage(@RequestParam String message) {
jmsTemplate.send(queue, s -> s.createTextMessage(message));
return message;
}
}
Eseguire l'applicazione in locale
Tornare alla radice della cartella di esempio
spring-sender-application
in cui si trova il filepom.xml
ed eseguire il comando seguente per avviare l'applicazione Spring Boot. Questo passaggio presuppone che sia stato installatomvn
nel computer Windows e che si trovi inPATH
.mvn spring-boot:run
Dopo l'avvio dell'applicazione, è possibile selezionare i collegamenti seguenti per inviare messaggi alla coda del bus di servizio.
http://localhost:8080/messages?message=Hello
http://localhost:8080/messages?message=HelloAgain
http://localhost:8080/messages?message=HelloOnceAgain
È possibile modificare il valore stringa nel parametro di query del messaggio e inviare qualsiasi testo alla coda del bus di servizio.
Il browser visualizza qualsiasi elemento passato come parametro della stringa di query del messaggio, a indicare che il bus di servizio accetta il messaggio.
Visualizzare i messaggi nella coda del bus di servizio
Nota
Anche se la visualizzazione dei messaggi aiuta ad avere una panoramica dell'invio, questo passaggio è facoltativo.
La ricezione di questi messaggi verrà illustrata nel passaggio successivo di questa esercitazione.
È possibile visualizzare i messaggi in Service Bus Explorer nel portale di Azure:
Nel portale di Azure selezionare Code nel menu a sinistra in Entità.
Selezionare la coda appropriata. Ad esempio, la coda per questa demo è test-queue-jms.
Nel riquadro sinistro selezionare Service Bus Explorer.
Selezionare Visualizza in anteprima dall'inizio. Verranno visualizzati tutti e tre i messaggi inviati usando i comandi HTTP.
Selezionare un messaggio per visualizzare il corpo del messaggio nel riquadro inferiore.