2015-05-11 42 views
1

我正在開發使用spring引導和spring批處理框架的Spring webapp。按文件彈出的批量讀取器文件

我們擁有一套複雜&不同的JSON文件,我們需要:

  1. 讀取每個文件
  2. 稍微修改其內容
  3. 終於將其存儲在MongoDB中。

問題:爲此任務使用spring batch是否合理?正如我在教程示例中可以看到的那樣,spring批處理是逐行處理的正確工具,但是按文件處理文件又如何呢?

我沒有作家(MongoItemWritter)和processer的問題,但我看不到如何實現讀者。

謝謝!

回答

2

你可以定義使用Spring Batch。 您讀者的物品可以是File

public class CustomItemReader implements InitializingBean{ 

    private List<File> yourFiles= null; 

    public File read() { 
     if ((yourFiles!= null) && (yourFiles.size() != 0)) { 
      return yourFiles.remove(0); 
     } 
     return null; 
    } 

    //Reading Items from Service 
    private void reloadItems() { 
     this.yourItems= new ArrayList<File>(); 
     // populate the items 
    } 


    @Override 
    public void afterPropertiesSet() throws Exception { 
     reloadItems(); 
    } 
} 

定製處理器:

public class MyProcessor implements ItemProcessor<File, File> { 
@Override 
public File process(File arg0) throws Exception { 
    // Apply any logic to your File before transferring it to the writer 
return arg0; 
} 
} 

和一個自定義作家:

public class MyWriter{ 
     public void write(File file) throws IOException { 
     } 
    }