檔案轉換器

要將從檔案系統讀取的資料轉換為物件,反之亦然,您需要做一些工作。與 FileReadingMessageSource 以及在較小程度上與 FileWritingMessageHandler 不同,您可能需要自己的機制來完成這項工作。為此,您可以實現 Transformer 介面。另外,您可以擴充套件 AbstractFilePayloadTransformer 用於入站訊息。Spring Integration 提供了一些顯而易見的實現。

請參閱 Transformer 介面的 Javadoc,以檢視哪些 Spring Integration 類實現了它。同樣,您可以檢視 AbstractFilePayloadTransformer 類的 Javadoc,以檢視哪些 Spring Integration 類擴充套件了它。

FileToByteArrayTransformer 擴充套件了 AbstractFilePayloadTransformer,並透過使用 Spring 的 FileCopyUtilsFile 物件轉換為 byte[]。通常,使用一系列轉換器比將所有轉換放在一個類中更好。在這種情況下,Filebyte[] 的轉換可能是合乎邏輯的第一步。

FileToStringTransformer 擴充套件了 AbstractFilePayloadTransformer,用於將 File 物件轉換為 String。如果沒別的,這對於除錯可能很有用(考慮將其與 監聽器 (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

© . This site is unofficial and not affiliated with VMware.