【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连接使用 ConnectionString 方式

简介: 【Azure Service Bus】使用Spring Cloud integration示例代码,为多个 Service Bus的连接使用 ConnectionString 方式

问题描述

查看Service Bus的Java示例代码,发现使用Spring Cloud Integration,配置 Application.yaml 可以连接到两个Service Bus。 但代码中没有使用Connection String 属性配置服务连接。

 

那么,是否可以直接在此添加 connection-string配置后,不用修改代码就可以连接到Service Bus服务呢?

 

问题解答

在解答这个问题之前,需要查看示例代码中,是如何来使用application.yaml中的属性值。

1) 自定义 CustomizedServiceBusProperties 对象,结构化 应用的属性配置

2) 在 MultipleAzureServiceBusNamespacesConfiguration  中读取配置,并调用 com.azure.spring.messaging.servicebus.core.DefaultServiceBusNamespaceProcessorFactory 构造函数

 

接下来,就需要查看com.azure.spring.messaging.servicebus.core.DefaultServiceBusNamespaceProcessorFactory的构造函数是否可以使用connction string属性初始化 Service Bus Processor对象。

查看 DefaultServiceBusNamespaceProcessorFactory 类的介绍文档:https://azuresdkdocs.blob.core.windows.net/$web/java/spring-messaging-azure-servicebus/4.1.0/com/azure/spring/messaging/servicebus/core/DefaultServiceBusNamespaceProcessorFactory.html#createProcessor(java.lang.String,com.azure.spring.cloud.service.listener.MessageListener,com.azure.spring.cloud.service.servicebus.consumer.ServiceBusErrorHandler)

构造函数由 NamespaceProperties 类传递参数, 它拥有GetConnectionStrng方法可以直接读取connection-string属性值

getConnectionString

public String getConnectionString()

Specified by:

getConnectionString in interface com.azure.spring.cloud.core.provider.connectionstring.ConnectionStringProvider

Specified by:

getConnectionString in interface com.azure.spring.cloud.service.implementation.servicebus.properties.ServiceBusClientCommonProperties

 

根据以上分析,如果需要Spring Cloud Integration示例代码使用连接字符串(Connection String) 初始化 Service Bus对象,只要在Application.yaml 文件中使用connection-string并设置正确的值就可以。

my.servicebus.namespaces[0]:

 connection-string: {AZURE_SERVICEBUS_CONNECTION_STRING_01}

 entity-type: queue

 entity-name: {AZURE_SERVICEBUS_NAMESPACE_01_QUEUE_NAME}

my.servicebus.namespaces[1]:

 connection-string: {AZURE_SERVICEBUS_CONNECTION_STRING_02}

 entity-type: queue

 entity-name: {AZURE_SERVICEBUS_NAMESPACE_02_QUEUE_NAME}

 

参考资料

Sending and Receiving Message by Azure Service Bus (Multiple Namespaces) And Spring Integration in Spring Boot Application :https://github.com/Azure-Samples/azure-spring-boot-samples/tree/main/servicebus/spring-cloud-azure-starter-integration-servicebus/multiple-namespaces

Class DefaultServiceBusNamespaceProcessorFactory : https://azuresdkdocs.blob.core.windows.net/$web/java/spring-messaging-azure-servicebus/4.1.0/com/azure/spring/messaging/servicebus/core/DefaultServiceBusNamespaceProcessorFactory.html

相关文章
|
4月前
|
监控 Cloud Native Java
Spring Integration 企业集成模式技术详解与实践指南
本文档全面介绍 Spring Integration 框架的核心概念、架构设计和实际应用。作为 Spring 生态系统中的企业集成解决方案,Spring Integration 基于著名的 Enterprise Integration Patterns(EIP)提供了轻量级的消息驱动架构。本文将深入探讨其消息通道、端点、过滤器、转换器等核心组件,以及如何构建可靠的企业集成解决方案。
504 0
|
6月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
549 0
|
9月前
|
Java 开发工具 Spring
【Azure Application Insights】为Spring Boot应用集成Application Insight SDK
本文以Java Spring Boot项目为例,详细说明如何集成Azure Application Insights SDK以收集和展示日志。内容包括三步配置:1) 在`pom.xml`中添加依赖项`applicationinsights-runtime-attach`和`applicationinsights-core`;2) 在main函数中调用`ApplicationInsights.attach()`;3) 配置`applicationinsights.json`文件。同时提供问题排查建议及自定义日志方法示例,帮助用户顺利集成并使用Application Insights服务。
255 8
|
11月前
|
消息中间件 Java Kafka
【Azure Kafka】使用Spring Cloud Stream Binder Kafka 发送并接收 Event Hub 消息及解决并发报错
reactor.core.publisher.Sinks$EmissionException: Spec. Rule 1.3 - onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be signaled serially.
214 5
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
197 1
Spring MVC——项目创建和建立请求连接
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
189 2
|
Java 应用服务中间件 nginx
【Azure Spring Apps】Spring App部署上云遇见 502 Bad Gateway nginx
【Azure Spring Apps】Spring App部署上云遇见 502 Bad Gateway nginx
176 0
|
6月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1107 0
|
7月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
866 0
|
3月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
422 3

热门文章

最新文章