2013-08-30 19 views
2

我想使用Spring AMQP發送和使用下面的自定義對象。如何在Spring AMQP中發送&使用對象?

生產者代碼

記錄記錄=新記錄( 「MESSAGE1」,新的日期());
rabbitTemplate.convertAndSend(record);

任何人都可以提供spring amqp @configuration設置來發送和使用消息,如上所述。謝謝!!!

回答

5

你應該看看Sample Applications;其中一些使用@Configuration

但是,本質上,你需要...

@Bean 
public SimpleMessageListenerContainer container() { 
    SimpleMessageListenerContainer container = 
      new SimpleMessageListenerContainer(connectionFactory()); 
    MessageListenerAdapter adapter = new MessageListenerAdapter(myListener()); 
    container.setMessageListener(adapter); 
    container.setQueues(foo()); 
    return container; 
} 

@Bean 
public Object myListener() { 
    return new Foo(); 
} 

和聽衆可以是一個POJO ...

public class Foo { 

    public void handleMessage(Record foo) { 
     System.out.println(foo); 
    } 
} 

編輯:

I added a Gist here的XML版本。

+0

謝謝羅素,能夠消耗對象。\ – Pand005

+1

我很想看到一個使用XML配置的例子。我有一切工作,可以發送/接收字符串,但不是對象。 我可以發送對象,但它們永遠不會被應用程序接收。 Rabbit MQs CPU在發送1條消息後跳至100%,並保持100%,直到我放棄隊列,所以它有點卡住了。 – Wouter

+1

請參閱[XML版本的要點](https://gist.github.com/garyrussell/c86d22f6e00a526aec37) –