2017-06-15 43 views
0

是否有配置默認Message<T>頭時從該方法返回的值所生成的消息中的方式:彈簧雲流默認自定義消息頭

@Publisher(channel = "theChannelname") 
public MyObject someMethod(Object param) { 
    ... 
    return myObject; 
} 

@SendTo("theChannelname") 
public MyObject someMethod(Object param) { 
    ... 
    return myObject; 
} 

在上面的例子將自動生成Message<MyObject>

那麼,我該如何控制默認的消息生成?

回答

1

你可以做到這一點通過@Header註解的方法的參數:

@Publisher(channel="testChannel") 
public String defaultPayload(String fname, @Header("last") String lname) { 
    return fname + " " + lname; 
} 

http://docs.spring.io/spring-integration/reference/html/message-publishing.html#publisher-annotation

+0

我標誌着答案接受,因爲它包含了工作方案。不過,我寧願不要通過基礎架構操作影響我的界面... 或者我錯過了什麼嗎? – Savash

+0

沒有「基礎架構操作」。這就是'@ Publisher'的工作原理:http://docs.spring.io/spring-integration/reference/html/message-publishing.html#publisher-annotation。你可能真的考慮從你的方法中返回整個'Message'來實現頭部傳輸的需求。 –

+0

我有一個接口方法:'''結果createRecord(Object data)''並且在實現中,我想發送一個結果給Kafka主題。假設我不能改變一個接口......並且我不想編寫代碼來做它:) ie'''channel.send(消息消息)''' – Savash

1

不是真的 - 假設是,如果你返回一個有效載荷,那麼你並不關心標題。你可以讓方法返回一個Message並在那裏添加你自己的頭文件。