簡體   English   中英

在 Spring 批處理中,與 ItemReader 調用鏈接我想調用 static util 方法來填充字符串

[英]In Spring Batch, linked with a ItemReader call I want to call a static util method to populate a string

我有一個 Spring 批處理閱讀器,具有以下配置。 該閱讀器正在從數據庫中讀取,並且一次讀取頁面大小記錄。

    @Autowired
    private SomeCreditRepot someCreditRepo;

    public RepositoryItemReader<SomeCreditModel> reader() {
         RepositoryItemReader<SomeCreditModel> reader = new RepositoryItemReader<>();
         reader.setRepository(someCreditRepo);
         reader.setMethodName("someCreditTransfer");
         .
         .
         
         ..
         return reader;
      }

我想調用 utils 方法,

     refValue = BatchProcessingUtil.generateSomeRefValue();

在處理器步驟之前,以便讀取器獲取的所有記錄都將具有由上述調用給出的相同設置值。

這樣讀取器獲取的所有實體將在處理器中獲得相同的值。

然后這個 refValue 將被寫入另一個表 StoreRefValue(table)。

在 Spring 批處理中執行此操作的正確方法是什么? 我是否應該觸發查詢以將 refValue 寫入處理器中的表 StoreRefValue?

您可以讓您的處理器實現接口StepExecutionListener 然后,您必須實施方法afterStepbeforeStep 第一個應該簡單地返回null ,在beforeStep中你可以調用實用方法並保存它的返回值。

或者,您可以使用注釋@BeforeStep 如果您使用通常的 Java DSL,則不需要將處理器顯式添加為步驟的偵聽器。 將它添加為處理器就足夠了。

參考文檔中有更多詳細信息: https://docs.spring.io/spring-batch/docs/current/reference/html/step.html#interceptingStepExecution

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM