Класс весной JMS имеет метод настройки setMessageConverter(...)
, который позволяет поставлять любой конвертер, который мы хотим.Преобразователь сообщений Spring JMS для DefaultMessageListenerContainer
Для аннотированных сообщений слушателя, это имеет смысл, как мы можем непосредственно определить
@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();
}
Из моего поиска в Docs/Javadocs и ограниченном понимании исходного кода, я думаю, что установка сообщения конвертера для этого случая не является полезным, т.е. преобразование сообщений не будет обрабатываться весной. Преобразование должно обрабатываться в переданном обратном вызове MessageListener? Поправьте меня, если я ошибаюсь.