如何從作者中讀取由讀者(自定義讀者)創建的java對象?如何從spring批處理訪問bean集
我必須保留count of the records processed
或skipped
由於異常和所有郵件通知後作業執行。我不想把它放在execution context
因爲我不需要堅持它。
我可以直接從reader中設置一個bean,然後從作者設置autowire
並使用它?
如何從作者中讀取由讀者(自定義讀者)創建的java對象?如何從spring批處理訪問bean集
我必須保留count of the records processed
或skipped
由於異常和所有郵件通知後作業執行。我不想把它放在execution context
因爲我不需要堅持它。
我可以直接從reader中設置一個bean,然後從作者設置autowire
並使用它?
您可以簡單地使用與讀者,寫者相同的類,然後可以共享實例變量。事實上,在完成作業之後,通過在'@afterJob'方法中實現StepExecutionListener,您可以使用相同的對象來執行諸如發送郵件之類的內容。
如果您的讀者和作者擁有簡單的代碼,這是一個很好的方法。或者,您可以通過讓分隔符讀寫器類具有實際邏輯並將您的實例變量傳遞給這些類來將該代碼委託給其他類。 您只需要在您的配置中定義與讀取器,寫入器和偵聽器相同的類。
public class CommitWriter implements ItemWriter<myObject>, ItemReader<myObject> , StepExecutionListener{
private myPojo sharedObject;
//Read method goes here
public myObjectread() throws Exception{
}
// Write method goes here
public void write(List<? extends myObject> arg0)
throws Exception {
}
//After job
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
}
}
它有幫助嗎? – Panther
爲什麼你不堅持在JobContext – Panther
像只計數相關的信息有很多這樣的,我不想堅持的價值觀,但要通知發送到SNS只是工作需要之後。我的工作無法重新啓動。在數據庫重載之後,我已經清除了相關的元數據。 –
我正在嘗試Java的ThreadLocal feture截至目前。這將幫助我在這裏:) –