是否可以阻止 Spring Boot 应用程序尝试连接到 IBM MQ?

不是聪明人

我有一个 Spring Boot 应用程序,它使用 IBM Spring Boot starter 连接到 IBM MessageQueue 服务:

com.ibm.mq:mq-jms-spring-boot-starter:2.1.2

我有一个监听队列的组件类,它有以下注释来启用/禁用连接到队列:

@ConditionalOnProperty(name = "queue.enabled", havingValue = "true")

我的 application.properties 中还有以下属性:

queue.enabled=false

当我连接到 ActiveMQ 时,此注释用于禁用队列连接,但是在更改代码库以连接到 IBM MQ 时,连接似乎不受 ConditionalOnProperty 的影响并且总是尝试连接。

有没有办法在服务器启动时启用/禁用连接到 IBM MQ 服务?

爱尔兰盐水

mq-jms-spring-boot-starter依赖项中存在的 MQAutoConfiguration 类是导致尝试队列连接的原因。

您有两个选项可以解决此问题,一个要求您设置特定属性,另一个允许您定义要用于启用或禁用队列连接的属性。

选项1

spring.jta.enabled = falseapplication.properties文件中设置该值(如果您在应用程序中使用事务,这可能不是首选选项。)

查看 MQAutoConfiguration 类,您可以看到它以属性为条件spring.jta.enabledapplication.properties文件中将该属性设置为 false将阻止注册 MQAutoConfiguration 类,这意味着不会注册 MQ bean,因此不会尝试连接到队列。

选项 2(如果您不想禁用 JTA)

创建包com.ibm.mq.spring.boot并在那里创建MQAutoConfiguration的副本@ConditionalOnProperty注释修改为您选择的属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从Spring Boot应用程序连接到IBM MQ

在我的Spring Boot应用程序中获取IBM MQ连接工厂

使用外部用户凭证连接IBM MQ的问题-Spring Boot + JMS + IBM MQ 8.0.0.9

我如何使用Spring Boot应用程序从IBM MQ中读取消息?

使用单个Spring Boot应用程序收听多个IBM MQ

在尝试创建连接之前,您能否通过 Java 应用程序检查 IBM MQ 主题是否已启动并可用?

是否可以将非容器化的 Spring Boot 应用程序连接到 MongoDB Docker 容器?

使用 IBM MQ 在 Spring Boot 中出现 TypeMismatchNamingException

如何连续使用Spring Boot从IBM MQ JMS接收消息?

与IBM MQ的Spring集成

spring boot 应用程序将 kafka 与活动 mq 集成

使用CCDT和Spring Boot JMSTemplate与IBM MQ集群连接时的MQRC_UNKNOWN_ALIAS_BASE_Q

连接到 IBM MQ 时更改“应用程序名称”?

从UFT连接到IBM MQ

Spring Boot Wep应用程序到IBM Websphere

使用 IBM MQ 配置连接节点 js 应用程序

与IBM MQ系列的Spring集成

Spring 集成和 IBM MQ

如何使用Spring Java应用程序使IBM MQ侦听器进程缓慢

使用 IBM 的 mq-jms-spring 检测断开连接

是否可以使用Java和JMS连接到本地运行的IBM MQ Light?

与WebSphere JMS IBM MQ提供程序的Spring集成

将MySQL连接到Spring Boot REST应用程序

是否可以从另一个应用程序(在单独的进程中启动)连接到Spring Boot嵌入式ActiveMQ实例?

根据en值在Spring Boot中加载Rabbit或IBM mq配置

使用CCDT + Spring Boot在Docker中使用IBM MQ进行MQRC_CLIENT_CONN_ERROR

IBM MQ:建立SSL连接

Spring Boot应用程序中带有Active MQ队列的Apache Camel路由

无法使用spring-boot-starter-data-cassandra从Spring Boot应用程序连接到Cassandra