【发布时间】:2022-02-01 16:51:52
【问题描述】:
我编写了一个小型应用程序,使用 Spring boot 将消息发布到 IBM MQ。我的 applications.properties 中有以下属性。当我输入目标队列名称和消息时代码正常工作,现在我想输入队列管理器名称并根据队列管理器名称 ibm.mq.QueueManager,ibm.mq.connName 应该更改。感谢有人给我一个建议。我需要想出一个单独的方法来启动 MQ 连接吗?
ibm.mq.QueueManager=KAU.TST
ibm.mq.channel=KAU.CONN
ibm.mq.connName=192.168.1.26(1540)
ibm.mq.user=
ibm.mq.password=
我在我的控制器类中包含了以下设置器,但它似乎没有按我的意图覆盖属性文件。
@Value("${ibm.mq.QueueManager:KAU.TST}")
String destQM;
public void setQueueManager(String destQM) {
this.destQM= destQM;
}
当前发布消息的方法
@Autowired
private JmsTemplate jmsTemplate;
public String dropmessage()
{
try{
//String msg="IBM MQ integration testing with spring boot";
jmsTemplate.convertAndSend(qname, msg);
System.out.println("Message Sent :"+msg);
return "OK";
}catch(JmsException ex){
ex.printStackTrace();
return "FAIL";
}
}
【问题讨论】:
-
为什么添加一个 setter 会神奇地改变 queuemanager?如何覆盖属性是explained in the documentation。这是假设这些是
application.properties的一部分。
标签: java spring-boot ibm-mq