0
弹簧JMS中的DefaultMessageListenerContainer
类具有setter方法 setMessageConverter(...)
它允许提供我们想要的任何转换器。DefaultMessageListenerContainer的Spring JMS消息转换器
对于注释的消息侦听器,这是有意义的,因为我们可以直接定义
@JmsListener(destination = "myDestination")
public void processOrder(MyConvertedType data) { ... }
和弹簧将采取消息转换和传递给此侦听的护理。
所以,这对于一个带注释的监听者来说显然是有意义的。我的问题是,设置一个消息转换器对非注释消息监听器有用吗?像
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();
}
从我的文档/ JavaDoc文档和源代码的了解有限搜索一些东西,我觉得设置消息转换为这种情况下是没有帮助的,即信息转换将不会被弹簧处理。转换必须在传递的MessageListener回调中处理?纠正我,如果我错了。