Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как использовать Spring Boot Starter для Служебная шина Azure JMS для отправки сообщений в служебная шина queues и topics.
Azure предоставляет асинхронную платформу обмена сообщениями с именем Служебная шина Azure ("служебная шина") на основе стандарта Advanced Message Queueing Protocol 1.0 ("AMQP 1.0"). Вы можете использовать служебная шина в диапазоне поддерживаемых платформ Azure.
Начальная версия Spring Boot для Служебная шина Azure JMS обеспечивает интеграцию Spring JMS с служебная шина.
В следующем видео описывается интеграция приложений Spring JMS с Служебная шина Azure с помощью JMS 2.0.
В этом руководстве мы рассмотрим два метода проверки подлинности: проверку подлинности Microsoft Entra и проверку подлинности Shared Access Signatures (SAS), . На вкладке Passwordless отображается проверка подлинности Microsoft Entra, а на вкладке Connection string — проверка подлинности SAS.
Аутентификация Microsoft Entra — это механизм, позволяющий подключаться к Служебная шина Azure JMS, используя удостоверения, определяемые в Microsoft Entra ID. С помощью проверки подлинности Microsoft Entra вы можете управлять удостоверениями пользователей базы данных и другими службами Microsoft в центральном расположении, что упрощает управление разрешениями.
Проверка подлинности SAS использует строку подключения пространства имен Служебная шина Azure для делегированного доступа к служебная шина JMS. Если Вы решите использовать подписи общего доступа в качестве учетных данных, необходимо самостоятельно управлять строкой подключения.
Требования
Подписка Azure — создайте бесплатно.
Java платформа разработки (JDK) версии 8 или более поздней.
Apache Maven версии 3.2 или более поздней.
Очередь или тема для Служебная шина Azure. Если у вас его нет, ознакомьтесь с используйте портал Azure для создания пространства имен служебная шина и очереди или используйте портал Azure для создания темы служебная шина и подписок на тему.
Приложение Spring Boot. Если у вас его нет, создайте проект Maven, используя Spring Initializr. Обязательно выберите Maven Project и в разделе Dependencies добавьте Spring Web и выберите Java версии 8 или более поздней.
Внимание
Для выполнения действий, описанных в этом руководстве, требуется Spring Boot версии 2.5 или более поздней.
Отправка и получение сообщений от Служебная шина Azure
С помощью очереди или темы для Служебная шина Azure можно отправлять и получать сообщения, используя Spring Cloud Служебная шина Azure JMS.
Чтобы установить модуль JMS Starter Служебная шина Azure Spring Cloud, добавьте следующие зависимости в файл pom.xml:
Акт технических спецификаций Spring Cloud Azure (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.4.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Примечание.
Если вы используете Spring Boot 4.0.x, установите для нее
spring-cloud-azure-dependenciesзначение .7.4.0Если вы используете Spring Boot 3.5.x, установите для нее
spring-cloud-azure-dependenciesзначение6.5.0.Если вы используете Spring Boot 3.1.x-3.5.x, обязательно установите для нее версию
spring-cloud-azure-dependenciesна5.25.0.Если вы используете Spring Boot 2.x, обязательно установите версию
spring-cloud-azure-dependenciesна4.20.0.Эта ведомость материалов (BOM) должна быть сконфигурирована в
<dependencyManagement>разделе файла pom.xml. Это гарантирует, что все зависимости Spring Cloud Azure используют одну и ту же версию.Дополнительные сведения о версии, используемой для этого BOM, см. в разделе Какую версию Spring Cloud Azure я должен использовать.
Артефакт Spring Cloud Служебная шина Azure JMS Starter:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId> </dependency>
Кодировать приложение
Выполните следующие действия, чтобы настроить приложение для отправки и получения сообщений с помощью очереди или темы служебная шина.
Настройте учетные данные служебная шина, добавив следующие свойства в файл application.properties.
Примечание.
Служебная шина Azure JMS поддерживает использование Microsoft Entra ID для авторизации запросов к служебная шина ресурсам. С помощью Microsoft Entra ID можно использовать Azure управление доступом на основе ролей (Azure RBAC) для предоставления разрешений субъекту безопасности, который может быть пользователем или субъектом-службой приложений.
Внимание
Перед началом работы убедитесь, что вы назначили роль Служебная шина Azure владельца данных учетной записи Microsoft Entra, которую вы используете. Для получения дополнительной информации см. в разделе Назначение ролей Azure в портале Azure.
spring.jms.servicebus.namespace=<ServiceBusNamespace> spring.jms.servicebus.pricing-tier=<ServiceBusPricingTier> spring.jms.servicebus.passwordless-enabled=true spring.jms.listener.receive-timeout=60000В следующей таблице описаны поля в конфигурации:
Поле Описание spring.jms.servicebus.namespaceУкажите пространство имен, которое вы получили в своей службе служебная шина на портале Azure. spring.jms.servicebus.pricing-tierВыберите ценовую категорию для служебной шины. Поддерживаемые значения: premiumиstandard. Уровень "Премиум" использует Java службу сообщений (JMS) 2.0, а уровень "Стандартный" использует JMS 1.1 для взаимодействия с Служебная шина Azure.spring.jms.servicebus.passwordless-enabledУкажите, следует ли использовать метод аутентификации без пароля. spring.jms.listener.receive-timeoutПо умолчанию значение времени ожидания получения равно 1000. Рекомендуется задать для него значение 60000 Добавьте
@EnableJms, чтобы включить поддержку аннотированных конечных точек слушателя JMS. ИспользуетсяJmsTemplateдля отправки сообщений и@JmsListenerполучения сообщений, как показано в следующем примере:import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jms.annotation.EnableJms; import org.springframework.boot.CommandLineRunner; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsTemplate; @SpringBootApplication @EnableJms public class ServiceBusJMSQueueApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceBusJMSQueueApplication.class); private static final String QUEUE_NAME = "<QueueName>"; @Autowired private JmsTemplate jmsTemplate; public static void main(String[] args) { SpringApplication.run(ServiceBusJMSQueueApplication.class, args); } @Override public void run(String... args) { LOGGER.info("Sending message"); jmsTemplate.convertAndSend(QUEUE_NAME, "Hello World"); } @JmsListener(destination = QUEUE_NAME, containerFactory = "jmsListenerContainerFactory") public void receiveMessage(String message) { LOGGER.info("Message received: {}", message); } }Замените
<QueueName>собственным именем очереди, настроенным в пространстве имен служебная шина.Совет
В этом руководстве нет операций проверки подлинности в конфигурациях или коде. Однако для подключения к службам Azure требуется проверка подлинности. Чтобы завершить проверку подлинности, необходимо использовать удостоверение Azure. Spring Cloud Azure использует
DefaultAzureCredential, которую предоставляет библиотека удостоверений Azure для получения учетных данных без необходимости изменения кода.DefaultAzureCredentialподдерживает несколько методов проверки подлинности и определяет, какой метод следует использовать во время выполнения. Этот подход позволяет приложению использовать различные методы проверки подлинности в разных средах (например, локальных и рабочих средах), не реализуя код, зависящий от среды. Дополнительные сведения см. в разделе DefaultAzureCredential.Для выполнения проверки подлинности в локальных средах разработки можно использовать Azure CLI, Visual Studio Code, PowerShell или другие методы. Дополнительные сведения см. в разделе аутентификация Azure в средах разработки на Java. Чтобы завершить проверку подлинности в средах размещения Azure, рекомендуется использовать управляемое удостоверение, назначаемое пользователем. Дополнительные сведения см. в разделе Управляемые удостоверения для ресурсов Azure?
Запустите приложение. Вы видите
Sending messageиHello Worldопубликовали в журнал приложения, как показано в следующем примере выходных данных:Sending message Message received: Hello World
Развертывание в Приложения Azure Spring
Теперь, когда у вас есть приложение Spring Boot, работающее локально, пришло время переместить его в рабочую среду. Приложения Azure Spring упрощает развертывание приложений Spring Boot для Azure без каких-либо изменений кода. Эта служба управляет инфраструктурой приложений Spring, благодаря чему разработчики могут сосредоточиться на коде. Приложения Azure Spring обеспечивает управление жизненным циклом с помощью комплексного мониторинга и диагностики, управления конфигурацией, обнаружения служб, интеграции CI/CD, развертывания по схеме blue-green и прочее. Чтобы развернуть ваше приложение в Приложения Azure Spring, см. раздел Как развернуть первое приложение в Приложения Azure Spring.