3
我正在使用STS 2.81中包含的Spring Batch模板創建Spring批處理作業,並使用Manning的Spring Batch in Action中的示例。我能夠毫無問題地執行大塊閱讀器和書寫器,但是我的代碼正在跳過處理器。我甚至試圖將所有對象清空,因爲它處理器中並沒有任何東西,對象仍然設法寫入,就好像處理器被忽略了一樣。我試着在處理器中調用System.out.println,但在終端中打印出來的不是。我最終通過註釋將配置從使用XML bean改變爲組件,並且它也不起作用。我不確定是否有一些設置我錯過了...我遵循Spring Batch in Action和SpringSource網站中的示例,並且一切看起來都很好......幫助!Spring批處理項目處理器未執行
下面的代碼:
<batch:job id="job1">
<batch:step id="step1" >
<batch:tasklet transaction-manager="transactionManager" start-limit="100" >
<batch:chunk reader="productFlatFileReader"
processor="productProcessor"
writer="productFlatFileWriter"
commit-interval="10" />
</batch:tasklet>
</batch:step>
</batch:job>
這裏的處理器豆:
<bean id="productProcessor" class="com.test.training.processors.ProductProcessor" />
這是我試圖用無濟於事執行處理器類:
package com.test.training.processors;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.stereotype.Component;
import com.test.training.entities.Product;
public class ProductProcessor implements ItemProcessor<Product, Product> {
@Override
public Product process(Product product) throws Exception {
product.setDescription("Processor is WORKING!");
return product;
//return this.validateProductByProductIdentifier(product) ? null : product;
}
private boolean validateProductByProductIdentifier(Product product) {
return product.getProduct_identifier() == 5 ? true : false;
}
}
你可以分享你productFlatFileReader配置? –
正如Serkan所問,平面文件閱讀器和相關的線路圖配置可以更好地瞭解這個問題。從平面文件的每一行構建的實體是否也是Product? – firefox784