2016-08-16 86 views
1

我們有,我們正在努力實現以下用例:讀取文件同步

  1. 發件人職位JMS隊列的消息。有效負載具有文件的名稱。
  2. 我們需要從預先配置的目錄中讀取文件(JMS消息中提供的文件名),並將內容存儲在數據庫中。

是否有任何在文件'命名空間'中可用的彈簧組件,允許我們讀取文件而不是輪詢文件?

我知道我們可以輪詢預先配置的目錄,但是我們想看看是否同步讀取(同步讀取選項允許我們從過程中讀取文件,這與讀取選項不同輪詢新文件,並且是流程的開始)由Oracle產品提供,也可以在Spring Integration中找到。

+0

這個問題可能意味着什麼?如果不知道文件的名稱,如何「輪詢」文件的內容? –

+0

我的問題是:提供了一個文件名;彈簧集成的組件允許我在中途讀取文件 –

+0

是的,我明白了。如何查看我的答案? –

回答

1

通過名稱創建File的操作非常簡單,我們只是沒有介紹關於此事的一些組件。

這就是:

<transformer expression="new java.io.File(payload)"/> 

或Java DSL變種:

.<String, File>transform(File::new) 

後,您可以使用外的開箱變壓器(一AbstractFilePayloadTransformer實現),以獲得內容和發送給數據庫。

正確的,SpEL表達式和Lambda可以根據預配置的目錄和傳入名稱自行定製以建立適當的文件路徑。