我正在开发一个从 Azure 服务总线读取消息的应用程序。该应用程序是使用 spring boot、Spring jms 和 Qpid jms 客户端创建的。我能够从 Queue 正确读取消息,没有任何问题。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
for dev
、testing-qa
forqa
和testing-prod
for production
,所有这些值都分别azure.queueName
在不同的应用程序(ENV)中提供。我想将这些目的地动态传递到 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}"
即,将占位符直接放在注释中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句