我创建了以下代码和匹配的配置。邮件的接收效果很好,但是SpEL
根本没有评估,因此创建了一个新的以表达式为名称的Exchange ...
看我的依赖版本,@SendTo
注释应该支持这种表达。
我究竟做错了什么?
我正在使用RabbitMQ
和Spring Boot 1.4.3
@EnableBinding(CommandChannel.class)
public class CommandSink {
private static final Logger LOGGER = LoggerFactory.getLogger(CommandSink.class);
@StreamListener(CommandChannel.INPUT)
@SendTo("!{request.messageProperties.headers['reply_to']}")
public String processCommand(@Payload String cmd, @Header("reply_to") String replyToQueue){
LOGGER.info("Got a {} command and I'll reply to {}", cmd, replyToQueue);
String result = "geil: " + cmd;
return result;
}
}
最佳答案
我究竟做错了什么?
没有; Bean后处理器中根本没有代码可以评估其中的SpEL表达式;该值是目标(通道名称)的简单字符串值。
是什么使您相信SpEL在此得到支持?我在解析这个问题时遇到了麻烦...
看我的依赖版本,@SendTo注释应该支持这种表达。
关于java - 为什么SpEL在Spring Boot和Spring Cloud Stream @SendTo中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41672409/