是否可以使用注释将任何方法的返回值发送到队列,例如
@SentTo("my.queue.name")
String send() {
return myString;
}
我肯定需要@RabbitListener才能使用@SendTo吗?也许另一种出路?
我试图简化我的代码。
答案 0 :(得分:1)
@SendTo
目前仅用于@RabbitListener
的回复,其中发件人未设置replyTo
标题。
你可以用Spring Integration @Publisher
annotation做你想做的事情,并将其频道连接到rabbitmq出站频道适配器......
@Publisher(channel = "amqpOutboundChannel")
public String send() {
return myString;
}
@Bean
@ServiceActivator(inputChannel = "amqpOutboundChannel")
public AmqpOutboundEndpoint amqpOutbound(AmqpTemplate amqpTemplate) {
AmqpOutboundEndpoint outbound = new AmqpOutboundEndpoint(amqpTemplate);
outbound.setRoutingKey("my.queue.name"); // default exchange - route to queue 'my.queue.name'
return outbound;
}
该方法必须是公共的,并从bean本身外部调用。