2017-05-10 17 views
0

私はSpring Integrationを使用してRSSフィードを消費しています。フィードアイテムを取得したら、ペイロードのフィールドを使用してデータを拡張し、Javaクラスを呼び出して追加のデータを取得し、すべてのデータをDBに書き込む前にペイロードに格納する必要があります。DSLを使用したSpringインテグレーションのペイロード

ペイロードエンリケーター、サービスアクティベータ、およびDSLを使用してこれを指定する方法は何ですか?

最後に、ペイロードはSyndEntryオブジェクトなので、新しいフィールドで新しいペイロードを作成する必要がありますか?

すべてのポインタが役立ちます。

答えて

0

はい、新しいペイロードタイプが必要です。あなたは... DSLで、その後...

... 
.handle("enricher", "enhance") 
... 
+0

おかげゲイリーを

@Bean public Enricher enricher() { return new Enricher(); } public static class Enricher { public Enhanced enhance(SyndEntry entry) { return new Enhanced(entry, "foo", "bar"); } } 

を簡単なPOJOを使用することができます。非常に役立ちます。 – Swordfish

+0

こんにちはゲイリー、これは働いている。ペイロードを強化するために実行する必要のあるコードを実行するには、(アウトバウンドAPI接続を行うときに)時間がかかることがあります。このコードをエンハンスメントメソッドに入れると、これは次のニュース項目を処理する前に完了する必要があります。ニュースアイテムと並行してペイロードを強化する方法はありますか? – Swordfish

+0

'.channel(Channels.executor(someTaskExecutorBean()))'を '.handle()'の前に追加し、下流のものは 'TaskExecutor'によって提供されるスレッド上で実行されます。 –

関連する問題