Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Spring Framework ile oluşturulan Java uygulamalarında Azure Depolama Queue nasıl kullanılacağı gösterilmektedir.
Azure Depolama Kuyruğu, dağıtılmış bir uygulamanın bileşenleri arasında iletişimi etkinleştirmek için bulut tabanlı kuyruklar uygular. Her kuyruk, bir gönderen bileşeni tarafından eklenebilecek ve alıcı bileşeni tarafından işlenebilecek iletilerin listesini tutar. Kuyrukla uygulamanız talebi karşılamak için hemen ölçeklendirilebilir.
Spring Cloud Azure, Azure Depolama Kuyruklarına ileti göndermek ve kuyruklardan ileti almak için Spring çerçevelerini kullanmaya yönelik çeşitli modüller sağlar. Aşağıdaki listede açıklandığı gibi, bu modülleri bağımsız olarak kullanabilir veya farklı kullanım örnekleri için birleştirebilirsiniz:
Spring Cloud Azure Depolama Queue Starter Spring Boot özelliklerine sahip Depolama Kuyrukları Java SDK istemci kitaplığı ile ileti gönderip almanızı sağlar.
Spring Mesajlaşma Azure Depolama KuyruğuSpring Messaging API aracılığıyla Depolama Kuyruklarıyla etkileşim kurmanızı sağlar.
Spring Integration Azure Depolama Queue Spring Integration Message Channels depolama kuyruklarına bağlamanızı sağlar.
Önkoşullar
Azure aboneliği - ücretsiz bir abonelik .
Java Development Kit (JDK), sürüm 8 veya üzeri.
Bir Azure Depolama hesabı ve Azure Kuyrukları. Bu kaynaklara sahip değilseniz önce bir depolama hesabı oluşturun, ardından bir kuyruk oluşturun. Daha fazla bilgi için bkz. Depolama hesabı oluşturma ve Kuyruk oluşturmaQuickstart: Azure portalıyla kuyruk oluşturma ve ileti ekleme.
Spring Boot uygulaması. Eğer bir tane yoksa, Spring Initializr ile bir Maven projesi oluşturun. Maven Project öğesini seçtiğinizden emin olun ve Dependencies altında Spring Web bağımlılığını ekleyin ve ardından Java sürüm 8 veya üzerini seçin.
Not
Hesabınıza kaynaklara erişim vermek için, yeni oluşturduğunuz Azure Depolama hesabınızda kullanmakta olduğunuz Microsoft Entra hesabına Storage Queue Data Contributor rolünü atayın. Daha fazla bilgi için bkz. Azure portalını kullanarak Azure rolleri atama.
Önemli
Bu öğreticideki adımları tamamlamak için Spring Boot sürüm 2.5 veya üzeri gereklidir.
Yerel ortamınızı hazırlama
Bu öğreticide, yapılandırmalar ve kodlarda herhangi bir kimlik doğrulama işlemi yoktur. Ancak, bir Azure hizmetine bağlanmak için kimlik doğrulaması gerekir. Kimlik doğrulamasını tamamlamak için Azure Kimliği istemci kitaplığını kullanmanız gerekir. Spring Cloud Azure, Azure Kimlik kitaplığının herhangi bir kod değişikliği yapmadan kimlik bilgilerini almanıza yardımcı olmak için sağladığı DefaultAzureCredential kullanır.
DefaultAzureCredential birden çok kimlik doğrulama yöntemini destekler ve çalışma zamanında hangi yöntemin kullanılacağını belirler. Bu yaklaşım, uygulamanızın ortama özgü kod uygulamadan farklı ortamlarda (yerel veya üretim ortamları gibi) farklı kimlik doğrulama yöntemleri kullanmasını sağlar. Daha fazla bilgi için Authenticate Azure barındırılan Java uygulamalarınınDefaultAzureCredential bölümüne bakın.
Yerel geliştirme ortamlarında kimlik doğrulamasını tamamlamak için Azure CLI, IntelliJ veya diğer yöntemleri kullanmak için bkz. Java geliştirme ortamlarında Azure kimlik doğrulaması. Azure barındırma ortamlarında kimlik doğrulamasını tamamlamak için yönetilen kimlik kullanmanızı öneririz. Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nelerdir?
Spring Cloud Azure Depolama Kuyruk Başlatıcısı'nı kullanma
Spring Cloud Azure Depolama Queue Starter modülü, Spring Boot çerçevesiyle birlikte Java için Azure Depolama Queue istemci kitaplığını içeri aktarır. Spring Cloud Azure ve Azure SDK birlikte, birbirini dışlayan olmayan bir düzende kullanabilirsiniz. Bu nedenle, Spring uygulamanızda Depolama Kuyruğu Java istemci API'sini kullanmaya devam edebilirsiniz.
Bağımlılık ekleme
Spring Cloud Azure Depolama Queue Starter modülünü yüklemek için pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring Cloud Azure Ürün Reçetesi( BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.3.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 4.0.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü7.3.0olarak ayarladığınızdan emin olun.Spring Boot 3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü6.4.0olarak ayarladığınızdan emin olun.Spring Boot 3.1.x-3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.25.0olarak ayarladığınızdan emin olun.Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Parça Listesi (BOM),
<dependencyManagement>bölümünde pom.xml dosyanızda yapılandırılmalıdır. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar.Bu ürün reçetesi için kullanılan sürüm hakkında daha fazla bilgi için bkz: Hangi Spring Cloud Azure Sürümünü Kullanmalıyım.
Spring Cloud Azure Kuyruk Depolama Kuyruğu yapıtı:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-queue</artifactId> </dependency>
İleti göndermek ve almak için uygulamanızı kodlayın
Bu bölümde, spring uygulaması bağlamında Azure Kuyruk Depolama istemcilerinin nasıl kullanılacağı gösterilmektedir. Aşağıdaki iki seçeneğiniz vardır:
- Spring Boot otomatik yapılandırmayı kullanın ve Spring bağlamından kullanıma sunulan istemcileri kullanın (önerilir).
- İstemciyi program aracılığıyla oluşturun.
Otomatik yapılandırma ile, Spring inversion-of-control (IoC) kapsayıcısından istemci bean'leri otomatik olarak kablolarsınız. Bu yaklaşım, Depolama Kuyruğu istemcileri ile geliştirme yaparken size daha esnek ve verimli bir deneyim sağlar. Otomatik yapılandırma aşağıdaki avantajlara sahiptir:
Otomatik yapılandırma, farklı ortamlarda aynı uygulama koduyla çalışabilmeniz için dışlanmış yapılandırmayı kullanır.
Oluşturucu desenini öğrenme ve istemcileri uygulama bağlamına kaydetme işlemini Spring Boot çerçevesine devredebilirsiniz. Yalnızca müşterileri kendi iş gereksinimlerinizle nasıl kullanacağınıza odaklanırsınız.
Uygulamanızın ve iç bileşenlerin durumunu ve durumunu denetlemek için sistem durumu göstergesini kullanabilirsiniz.
Aşağıdaki bölümlerdeki kod örnekleri, açıklanan iki alternatifle nasıl kullanacağınızı QueueClient gösterir.
İpucu
Depolama Kuyruğu için Azure Java SDK'sı, Depolama Kuyruğu ile etkileşime geçmek için birden çok istemci sağlar. Başlatıcı ayrıca tüm Depolama Kuyruğu istemcileri ve istemci oluşturucuları için otomatik yapılandırma sağlar. Bu makalede yalnızca QueueClient örnek olarak kullanılır.
Spring Boot otomatik yapılandırmayı kullanma
Azure Depolama kuyruklarına ileti göndermek ve bu kuyruklardan ileti almak için uygulamayı yapılandırmak için aşağıdaki adımları kullanın:
Aşağıdaki örnekte gösterildiği gibi depolama hesabı adınızı ve kuyruk adınızı yapılandırın:
spring.cloud.azure.storage.queue.account-name=<your-storage-account-name> spring.cloud.azure.storage.queue.queue-name=<your-storage-queue-name>QueueClientAşağıdaki örnekte gösterildiği gibi Spring uygulamanıza öğesini ekleyin ve iletileri göndermek için ilgili API'leri çağırın:import com.azure.storage.queue.QueueClient; import com.azure.storage.queue.models.QueueMessageItem; import com.azure.storage.queue.models.SendMessageResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class StorageQueueClientApplication implements CommandLineRunner { private final static Logger logger = LoggerFactory.getLogger(StorageQueueClientApplication.class); @Autowired private QueueClient queueClient; public static void main(String[] args) { SpringApplication.run(StorageQueueClientApplication.class, args); } @Override public void run(String... args) { // Using the QueueClient object, call the create method to create the queue in your storage account. queueClient.create(); SendMessageResult sendMessageResult = queueClient.sendMessage("Hello world"); logger.info("Send message id: {}", sendMessageResult.getMessageId()); QueueMessageItem queueMessageItem = queueClient.receiveMessage(); logger.info("Received message: {}", new String(queueMessageItem.getBody().toBytes())); } }Uygulamayı başlatın. Uygulama başlatıldıktan sonra aşağıdaki örneğe benzer günlükler oluşturur:
Send message id: ... Received message: Hello world
İstemciyi programatik olarak oluştur
İstemci bean'lerini kendiniz oluşturabilirsiniz, ancak işlem karmaşıktır. Spring Boot uygulamalarında özellikleri yönetmeniz, oluşturucu desenini öğrenmeniz ve istemcileri Spring uygulama bağlamınıza kaydetmeniz gerekir. Aşağıdaki adımlar bunu nasıl yapacağınızı gösterir.
İstemciyi aşağıdaki örnekte gösterildiği gibi Spring uygulamanızda program aracılığıyla oluşturun. Yer tutucuyu
<storage-account-name>kendi değerinizle değiştirmeyi unutmayın.import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.storage.queue.QueueClient; import com.azure.storage.queue.QueueClientBuilder; import com.azure.storage.queue.models.QueueMessageItem; import com.azure.storage.queue.models.SendMessageResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class StorageQueueClientApplication implements CommandLineRunner { private final static String queueName = "test-queue"; private final static String endpoint = "https://<storage-account-name>.queue.core.windows.net/"; private final static Logger logger = LoggerFactory.getLogger(StorageQueueClientApplication.class); QueueClient queueClient = new QueueClientBuilder() .endpoint(endpoint) .queueName(queueName) .credential(new DefaultAzureCredentialBuilder().build()) .buildClient(); public static void main(String[] args) { SpringApplication.run(StorageQueueClientApplication.class, args); } @Override public void run(String... args) { // Using the QueueClient object, call the create method to create the queue in your storage account. queueClient.create(); SendMessageResult sendMessageResult = queueClient.sendMessage("Hello world"); logger.info("Send message id: {}", sendMessageResult.getMessageId()); QueueMessageItem queueMessageItem = queueClient.receiveMessage(); logger.info("Received message: {}", new String(queueMessageItem.getBody().toBytes())); } }Uygulamayı başlatın. Uygulama başlatıldıktan sonra aşağıdaki örneğe benzer günlükler oluşturur:
Send message id: ... Received message: Hello world
Aşağıdaki listede bu kodun esnek veya zarif olmamasının nedenleri gösterilmektedir:
- Depolama hesabı ve kuyruk adları sabit kodlanmıştır.
- Spring ortamından yapılandırmaları almak için kullanıyorsanız
@Value, application.properties dosyanızda IDE ipuçlarına sahip olamazsınız. - Mikro hizmet senaryonuz varsa, kodu her projede yinelemeniz gerekir ve hata yapmak kolaydır ve tutarlı olmak zordur.
Neyse ki Spring Cloud Azure ile istemci çekirdeklerini kendiniz oluşturmak gerekli değildir. Bunun yerine, bunları doğrudan ekleyebilir ve depolama kuyruğunun yapılandırılması için zaten bildiğiniz yapılandırma özelliklerini kullanabilirsiniz. Daha fazla bilgi için bkz. Spring Cloud Azure yapılandırma özellikleri.
Spring Cloud Azure, farklı senaryolar için aşağıdaki genel yapılandırmaları da sağlar. Daha fazla bilgi için bkz. Spring Cloud Azure genel yapılandırma özellikleri.
- Proxy seçenekleri.
- Yeniden deneme seçenekleri.
Ayrıca farklı Azure bulutlara da bağlanabilirsiniz. Daha fazla bilgi için bkz. Farklı Azure bulutlarına bağlanma.
Azure Depolama Queue ile Spring Messaging Kullanma
Spring Messaging Azure Depolama Kuyruğu modülü, Azure Kuyruk Depolama ile Spring Messaging çerçevesi için destek sağlar.
Spring Messaging'in Azure Depolama Kuyruğu modülünü kullanıyorsanız, depolama kuyruklarına eşzamansız ve eşzamanlı olarak ileti göndermek için StorageQueueTemplate özelliğini kullanabilirsiniz.
Aşağıdaki bölümlerde, depolama kuyruklarına ileti göndermek ve bu kuyruklardan ileti almak için Spring Messaging Azure Depolama Kuyruğunun nasıl kullanılacağı gösterilmektedir.
Bağımlılık ekleme
Spring Messaging Azure Depolama Kuyruğu modülünü yüklemek için pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring Cloud Azure Ürün Reçetesi( BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.3.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 4.0.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü7.3.0olarak ayarladığınızdan emin olun.Spring Boot 3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü6.4.0olarak ayarladığınızdan emin olun.Spring Boot 3.1.x-3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.25.0olarak ayarladığınızdan emin olun.Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Parça Listesi (BOM),
<dependencyManagement>bölümünde pom.xml dosyanızda yapılandırılmalıdır. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar.Bu ürün reçetesi için kullanılan sürüm hakkında daha fazla bilgi için bkz: Hangi Spring Cloud Azure Sürümünü Kullanmalıyım.
Spring Cloud Azure başlangıç paketi ve Spring İletim Kuyruk Depolama yapıtları:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter</artifactId> </dependency> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-messaging-azure-storage-queue</artifactId> </dependency>
İleti göndermek ve almak için uygulamanızı kodlayın
Uygulamanızı yapılandırmak ve kod uygulamak için aşağıdaki adımları kullanın:
Aşağıdaki örnekte gösterildiği gibi depolama kuyruklarınız için Azure Depolama hesap adını yapılandırın:
spring.cloud.azure.storage.queue.account-name=<your-storage-account-name>Aşağıdaki örnekte gösterildiği gibi Spring ile ileti göndermek ve almak için bir göndereni ve alıcıyı kablolayın. Yer tutucuyu
<storage-queue-name>kendi değerinizle değiştirmeyi unutmayın.import com.azure.spring.messaging.AzureHeaders; import com.azure.spring.messaging.checkpoint.Checkpointer; import com.azure.spring.messaging.storage.queue.core.StorageQueueTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.messaging.Message; import org.springframework.messaging.support.MessageBuilder; import java.time.Duration; @SpringBootApplication public class StorageQueueMessagingApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(StorageQueueMessagingApplication.class); private static final String STORAGE_QUEUE_NAME = "<storage-queue-name>"; @Autowired StorageQueueTemplate storageQueueTemplate; public static void main(String[] args) { SpringApplication.run(StorageQueueMessagingApplication.class, args); } @Override public void run(String... args) { storageQueueTemplate .sendAsync(STORAGE_QUEUE_NAME, MessageBuilder.withPayload("Hello world").build()) .subscribe(); LOGGER.info("Message was sent successfully."); Message<?> message = storageQueueTemplate.receiveAsync(STORAGE_QUEUE_NAME, Duration.ofSeconds(30)).block(); LOGGER.info("Received message: {}", new String((byte[]) message.getPayload())); } }Uygulamayı başlatın. Uygulama başlatıldıktan sonra aşağıdaki örneğe benzer günlükler oluşturur:
Message was sent successfully. ... Received message: Hello World
Spring Integration Azure Depolama Queue kullanımı
Spring Integration Azure Depolama Queue modülü, depolama kuyruklarıyla Spring Integration çerçevesi için destek sağlar.
Spring uygulamanız Spring Integration ileti kanallarını kullanıyorsa, kanal bağdaştırıcılarını kullanarak iletileri ileti kanallarınız ve depolama kuyruğunuz arasında yönlendirebilirsiniz. Gelen kanal bağdaştırıcısı, iletileri depolama kuyruğundan ileti kanalına iletir. Bir çıkış kanal bağdaştırıcısı, bir ileti kanalından gelen iletileri bir depolama kuyruğuna yayımlar.
Aşağıdaki bölümlerde, depolama kuyruklarına ileti gönderip almak için Spring Integration Azure Depolama Queue'un nasıl kullanılacağı gösterilmektedir.
Bağımlılık ekleme
Spring Integration Azure Depolama Queue modülünü yüklemek için pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring Cloud Azure Ürün Reçetesi( BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.3.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 4.0.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü7.3.0olarak ayarladığınızdan emin olun.Spring Boot 3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü6.4.0olarak ayarladığınızdan emin olun.Spring Boot 3.1.x-3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.25.0olarak ayarladığınızdan emin olun.Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Parça Listesi (BOM),
<dependencyManagement>bölümünde pom.xml dosyanızda yapılandırılmalıdır. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar.Bu ürün reçetesi için kullanılan sürüm hakkında daha fazla bilgi için bkz: Hangi Spring Cloud Azure Sürümünü Kullanmalıyım.
Spring Integration Azure Depolama Queue artefaktları:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-integration-storage-queue</artifactId> </dependency>
İleti göndermek ve almak için uygulamanızı kodlayın
Uygulamanızı yapılandırmak ve kod uygulamak için aşağıdaki adımları kullanın:
Depolama kuyruklarınız için Azure Depolama hesap adını yapılandırın.
spring.cloud.azure.storage.queue.account-name=<your-storage-account-name>Aşağıdaki örnekte gösterildiği gibi yeni bir
QueueReceiveConfigurationJava sınıfı oluşturun. Bu sınıf, bir ileti alıcısı tanımlamak için kullanılır. Yer tutucuyu<storage-queue-name>kendi değerinizle değiştirmeyi unutmayın.import com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource; import com.azure.spring.messaging.AzureHeaders; import com.azure.spring.messaging.checkpoint.Checkpointer; import com.azure.spring.messaging.storage.queue.core.StorageQueueTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.annotation.InboundChannelAdapter; import org.springframework.integration.annotation.Poller; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.handler.annotation.Header; @Configuration public class QueueReceiveConfiguration { private static final Logger LOGGER = LoggerFactory.getLogger(QueueReceiveConfiguration.class); private static final String STORAGE_QUEUE_NAME = "<storage-queue-name>"; private static final String INPUT_CHANNEL = "input"; @Bean @InboundChannelAdapter(channel = INPUT_CHANNEL, poller = @Poller(fixedDelay = "1000")) public StorageQueueMessageSource storageQueueMessageSource(StorageQueueTemplate storageQueueTemplate) { return new StorageQueueMessageSource(STORAGE_QUEUE_NAME, storageQueueTemplate); } @ServiceActivator(inputChannel = INPUT_CHANNEL) public void messageReceiver(byte[] payload, @Header(AzureHeaders.CHECKPOINTER) Checkpointer checkpointer) { String message = new String(payload); LOGGER.info("Received message: {}", message); } }Aşağıdaki örnekte gösterildiği gibi yeni bir
QueueSendConfigurationJava sınıfı oluşturun. Bu sınıf, ileti göndereni tanımlamak için kullanılır. Yer tutucuyu<storage-queue-name>kendi değerinizle değiştirmeyi unutmayın.import com.azure.spring.integration.core.handler.DefaultMessageHandler; import com.azure.spring.messaging.storage.queue.core.StorageQueueTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.annotation.MessagingGateway; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.MessageHandler; import org.springframework.util.concurrent.ListenableFutureCallback; @Configuration public class QueueSendConfiguration { private static final Logger LOGGER = LoggerFactory.getLogger(QueueSendConfiguration.class); private static final String STORAGE_QUEUE_NAME = "<storage-queue-name>"; private static final String OUTPUT_CHANNEL = "output"; @Bean @ServiceActivator(inputChannel = OUTPUT_CHANNEL) public MessageHandler messageSender(StorageQueueTemplate storageQueueTemplate) { DefaultMessageHandler handler = new DefaultMessageHandler(STORAGE_QUEUE_NAME, storageQueueTemplate); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.info("There was an error sending the message."); } }); return handler; } @MessagingGateway(defaultRequestChannel = OUTPUT_CHANNEL) public interface StorageQueueOutboundGateway { void send(String text); } }Spring ile ileti göndermek ve almak için bir göndereni ve alıcıyı bağla.
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Configuration; import org.springframework.integration.config.EnableIntegration; @SpringBootApplication @EnableIntegration @Configuration(proxyBeanMethods = false) public class StorageQueueIntegrationApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(StorageQueueIntegrationApplication.class, args); QueueSendConfiguration.StorageQueueOutboundGateway storageQueueOutboundGateway = applicationContext.getBeanQueueSendConfiguration.StorageQueueOutboundGateway.class); storageQueueOutboundGateway.send("Hello World"); } }İpucu
Spring Integration altyapısını
@EnableIntegrationetkinleştiren ek açıklamayı eklemeyi unutmayın.Uygulamayı başlatın. Uygulama başlatıldıktan sonra aşağıdaki örneğe benzer günlükler oluşturur:
Message was sent successfully. Received message: Hello World
Azure Spring Apps'e dağıtım yapma
Spring Boot uygulamasını yerel olarak çalıştırdığınıza göre artık uygulamayı üretim ortamına taşımanın zamanı geldi. Azure Spring Apps Spring Boot uygulamalarını kod değişikliği olmadan Azure dağıtmayı kolaylaştırır. Hizmet, geliştiricilerin kodlarına odaklanabilmesi için Spring uygulamalarının altyapısını yönetir. Azure Spring Apps kapsamlı izleme ve tanılama, yapılandırma yönetimi, hizmet bulma, CI/CD tümleştirmesi, mavi-yeşil dağıtımlar ve daha fazlasını kullanarak yaşam döngüsü yönetimi sağlar. Uygulamanızı Azure Spring Apps dağıtmak için bkz. İlk uygulamanızı Azure Spring Apps'a dağıtma.
Sonraki adımlar
Spring geliştiricileri için AzureSpring Cloud Azure Depolama Kuyruk Örnekleri
Ayrıca bkz.
Microsoft Azure için kullanılabilen Spring Boot Başlatıcıları hakkında daha fazla bilgi için bkz. Spring Cloud Azure nedir?