gpt4 book ai didi

java - 如何在 Spring boot 中动态地向 JMSListener Annotation 添加不同的目的地?

转载 作者:行者123 更新时间:2023-11-29 06:52:38 27 4
gpt4 key购买 nike

我正在开发一个从 Azure 服务总线读取消息的应用程序。此应用程序是使用 spring boot、Spring jms 和 Qpid jms 客户端创建的。我能够毫无问题地从队列中正确读取消息。 PFB 我用来阅读消息的代码。

@Service
public class QueueReceiver {
@JmsListener(destination = "testing")
public void onMessage(String message) {
if (null != message) {
System.out.println("Received message from Queue: " + message);
}
}}

问题是我们对不同的环境有不同的目的地,比如 testing 用于 devtesting-qa 用于 qatesting-prod for production,所有这些值分别在不同的 application-(ENV).proerpties 中作为 azure.queueName 提供。我想将这些目的地动态传递到 JmsListener Annotation 中的目的地。当我尝试使用

@Value("${azure.queueName}")
private String dest;

并将 dest 传递给注解,如 @JmsListener(destination = dest)

我收到 The value for annotation attribute JmsListener.destination must be a constant expression 错误。谷歌搜索此错误后,我发现我们无法将动态值传递给注释。请帮助我如何解决此问题或任何其他解决方案。

最佳答案

使用

destination="${azure.queueName}"

即将占位符直接放在注释中。

关于java - 如何在 Spring boot 中动态地向 JMSListener Annotation 添加不同的目的地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42532613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com