ファイル Transformers
ファイルシステムから読み取ったデータをオブジェクトに変換したり、その逆を行うには、何らかの作業を行う必要があります。FileReadingMessageSource とは異なり、FileWritingMessageHandler ほどではありませんが、ジョブを完了するためにはおそらく独自のメカニズムが必要です。このために、Transformer インターフェースを実装できます。または、受信メッセージ用に AbstractFilePayloadTransformer を継承できます。Spring Integration は、いくつかの明らかな実装を提供します。
Transformer インターフェースの Javadoc を参照して、どの Spring Integration クラスがそれを実装しているかを確認してください。同様に、AbstractFilePayloadTransformer クラスの Javadoc をチェックして、どの Spring Integration クラスがそれを継承しているかを確認できます。
FileToByteArrayTransformer は AbstractFilePayloadTransformer を継承し、Spring の FileCopyUtils を使用して File オブジェクトを byte[] に変換します。多くの場合、すべての変換を単一のクラスに入れるよりも、一連のトランスフォーマーを使用する方が適切です。その場合、File から byte[] への変換は論理的な最初のステップかもしれません。
FileToStringTransformer extends AbstractFilePayloadTransformer convert a File object to a String. If nothing else, this can be useful for debugging (to consider using it with a wire tap).
ファイル固有のトランスフォーマーを構成するには、次の例に示すように、ファイル名前空間の適切な要素を使用できます。
<int-file:file-to-bytes-transformer input-channel="input" output-channel="output"
delete-files="true"/>
<int-file:file-to-string-transformer input-channel="input" output-channel="output"
delete-files="true" charset="UTF-8"/>delete-files オプションは、変換完了後に入力ファイルを削除するようトランスフォーマーに指示します。これは、マルチスレッド環境(たとえば、一般的に Spring Integration を使用する場合)で FileReadingMessageSource が使用されている場合、AcceptOnceFileListFilter の使用に代わるものではありません。