如何使用Sping Boot 为目标定义MessageConverter?我已经定义了消息代理和JMS侦听器。
@JmsListener(destination = "new.clinic.queue")
public void receiveNewClinic(MyCustomDTO message) {
}
和我的消息代理
@Bean
public BrokerService broker() throws Exception {
BrokerService broker = new BrokerService();
broker.setBrokerName(brokerName);
broker.addConnector(brokerAddress);
return broker;
}
如何为MyCustomDTO添加自己消息转换器
2条答案
按热度按时间bweufnob1#
您需要创建一个
JmsMessageContainerFactory
并对其进行相应的配置。Sping Boot 会为您创建一个示例,但您可以根据需要使用自己的自定义创建任意多的示例,并使用@JmsListener
注解的containerFactory
引用它们。请注意,此处的bean名称是默认名称,因此您不需要指定
connectionFactory
属性。Sping Boot 1.4将auto-detect your
MessageConverter
并将其分配给它自动为您创建的默认工厂。xtfmy6hx2#
您可以像这样定义转换器
因为您使用@Component对其进行了注解,所以不需要定义JmsTemplate(在其上设置转换器以进行发送)或定义DefaultJmsListenerContainerFactory。
但是要认识到,如果您定义了这两个类,则必须按照Stephane的建议将转换器设置到这两个类上