2016-02-12 40 views
0

如何使用spring引导为目标定义MessageConverter?我已经定义了我的消息代理和JMS Listener。如何在Spring引导中添加MessageConverter消息传递

@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

你需要创建一个JmsMessageContainerFactory并相应地配置它。 Spring Boot会为您创建一个,但您可以根据自己的自定义创建尽可能多的实例,并使用@JmsListener批注的containerFactory来引用它们。

@Bean 
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
     ConnectionFactory connectionFactory) { 
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); 
    factory.setConnectionFactory(connectionFactory); 
    factory.setMessageConverter(yourMessageConverter()); 
    // .. other settings 
    return factory; 
} 

注意bean的名称这里是默认的名称,以便您不需要指定connectionFactory属性。

Spring Boot 1.4将auto-detect your MessageConverter并将其分配给它自动为您创建的默认工厂。

+0

如果我想拥有多个连接工厂,我将不得不更改任何内容吗?和连接多个转换器的工厂 – user962206

相关问题