<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Spring Batch 事件監聽器 > 原文: [https://howtodoinjava.com/spring-batch/spring-batch-event-listeners/](https://howtodoinjava.com/spring-batch/spring-batch-event-listeners/) 學習創建和配置 Spring Batch 的`JobExecutionListener`(作業前后),`StepExecutionListener`(步驟前后),`ItemReadListener`,`ItemProcessListener`,`ItemWriteListener`和`SkipListener`實現。 ## `JobExecutionListener` #### `JobExecutionListener`監聽器示例 `JobExecutionListener Example` ```java import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobExecutionListener; public class JobResultListener implements JobExecutionListener { public void beforeJob(JobExecution jobExecution) { System.out.println("Called beforeJob()."); } public void afterJob(JobExecution jobExecution) { System.out.println("Called afterJob()."); } } ``` #### 如何配置`JobExecutionListener` `JobExecutionListener Configuration` ```java @Bean public Job demoJob(){ return jobs.get("demoJob") .incrementer(new RunIdIncrementer()) .listener(new JobResultListener()) .start(stepOne()) .next(stepTwo()) .build(); } ``` ## `StepExecutionListener` #### `StepExecutionListener`監聽器示例 `StepExecutionListener Example` ```java import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.StepExecutionListener; public class StepResultListener implements StepExecutionListener { @Override public void beforeStep(StepExecution stepExecution) { System.out.println("Called beforeStep()."); } @Override public ExitStatus afterStep(StepExecution stepExecution) { System.out.println("Called afterStep()."); return ExitStatus.COMPLETED; } } ``` #### 如何配置`StepExecutionListener` `StepExecutionListener Configuration` ```java @Bean public Step stepOne(){ return steps.get("stepOne") .tasklet(new MyTaskOne()) .listener(new StepResultListener()) .build(); } @Bean public Step stepTwo(){ return steps.get("stepTwo") .tasklet(new MyTaskTwo()) .listener(new StepResultListener()) .build(); } ``` ## `ItemReadListener` #### `ItemReadListener`監聽器示例 `ItemReadListener Example` ```java import org.springframework.batch.core.ItemReadListener; public class StepItemReadListener implements ItemReadListener<String> { @Override public void beforeRead() { System.out.println("ItemReadListener - beforeRead"); } @Override public void afterRead(String item) { System.out.println("ItemReadListener - afterRead"); } @Override public void onReadError(Exception ex) { System.out.println("ItemReadListener - onReadError"); } } ``` #### 如何配置`ItemReadListener` `ItemReadListener Configuration` ```java @Bean public Step stepOne(){ return steps.get("stepOne") .tasklet(new MyTaskOne()) .listener(new StepItemReadListener()) .build(); } ``` ## `ItemProcessListener` #### `ItemProcessListener`監聽器示例 `ItemProcessListener Example` ```java import org.springframework.batch.core.ItemProcessListener; public class StepItemProcessListener implements ItemProcessListener<String, Number> { @Override public void beforeProcess(String item) { System.out.println("ItemProcessListener - beforeProcess"); } @Override public void afterProcess(String item, Number result) { System.out.println("ItemProcessListener - afterProcess"); } @Override public void onProcessError(String item, Exception e) { System.out.println("ItemProcessListener - onProcessError"); } } ``` #### 如何配置`ItemProcessListener` `ItemProcessListener Configuration` ```java @Bean public Step stepOne(){ return steps.get("stepOne") .tasklet(new MyTaskOne()) .listener(new StepItemProcessListener()) .build(); } ``` ## `ItemWriteListener` #### `ItemWriteListener`監聽器示例 `ItemWriteListener Example` ```java import java.util.List; import org.springframework.batch.core.ItemWriteListener; public class StepItemWriteListener implements ItemWriteListener<Number> { @Override public void beforeWrite(List<? extends Number> items) { System.out.println("ItemWriteListener - beforeWrite"); } @Override public void afterWrite(List<? extends Number> items) { System.out.println("ItemWriteListener - afterWrite"); } @Override public void onWriteError(Exception exception, List<? extends Number> items) { System.out.println("ItemWriteListener - onWriteError"); } } ``` #### 如何配置`ItemWriteListener` `ItemWriteListener Configuration` ```java @Bean public Step stepOne(){ return steps.get("stepOne") .tasklet(new MyTaskOne()) .listener(new StepItemWriteListener()) .build(); } ``` ## `SkipListener` #### `SkipListener`監聽器示例 `SkipListener Example` ```java import org.springframework.batch.core.SkipListener; public class StepSkipListener implements SkipListener<String, Number> { @Override public void onSkipInRead(Throwable t) { System.out.println("StepSkipListener - onSkipInRead"); } @Override public void onSkipInWrite(Number item, Throwable t) { System.out.println("StepSkipListener - afterWrite"); } @Override public void onSkipInProcess(String item, Throwable t) { System.out.println("StepSkipListener - onWriteError"); } } ``` #### 如何配置`SkipListener` `SkipListener Configuration` ```java @Bean public Step stepOne(){ return steps.get("stepOne") .tasklet(new MyTaskOne()) .listener(new StepSkipListener()) .build(); } ``` 使用和實現非常簡單。 在評論部分讓我知道您的問題。 學習愉快! 參考文獻: 1. [`JobExecutionListener` JavaDoc](https://docs.spring.io/spring-batch/4.0.x/api/org/springframework/batch/core/JobExecutionListener.html) 2. [`StepExecutionListener` JavaDoc](https://docs.spring.io/spring-batch/4.0.x/api/org/springframework/batch/core/StepExecutionListener.html) 3. [`ItemReadListener` JavaDoc](https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/ItemReadListener.html) 4. [`ItemProcessListener` JavaDoc](https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/ItemProcessListener.html) 5. [`ItemWriteListener` JavaDoc](https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/ItemWriteListener.html) 6. [`StepSkipListener` JavaDoc](https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/SkipListener.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看