spring JMS中的DefaultMessageListenerContainer
类具有setter方法
setMessageConverter(...)
允许提供我们想要的任何转换器。
对于带注释的消息监听器,这是有意义的,因为我们可以直接定义
@JmsListener(destination = "myDestination")
public void processOrder(MyConvertedType data) { ... }
和spring将负责转换并将消息传递给此侦听器。
因此,对于带注释的侦听器来说,这显然是有意义的。我的问题是,设置一个消息转换器对非注释的消息监听器有用吗?像
这样的东西public void registerListener(String queueName, MessageListener listener) {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setMessageConverter(getMessageConverter());
container.setDestinationName(queueName);
container.setMessageListener(listener);
container.initialize();
container.start();
}
从我在docs / javadocs中的搜索以及对源代码的有限理解,我认为为这种情况设置一个消息转换器是没有用的,即消息转换不会由spring处理。转换必须在传递的MessageListener回调中处理?如果我错了,请纠正我。
答案 0 :(得分:1)
仅在创建容器以支持grouped <- group_by(wage_by_gender_2015, sex, region)
dplyr::summarise(grouped, FUN = lb_weighted_median_dplyr(wage, exp_region))
注释时使用它 - 转换器从容器工厂传输到容器,然后传递到@JmsListener
,用于调用带注释的POJO方法
容器只是通过容器工厂配置适配器的管道。
所以,是的,对于一个简单的MessagingMessageListenerAdapter
,它被忽略了。