2016-02-12 75 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

相關問題