美文网首页
spring batch 监听器(监听job , step)

spring batch 监听器(监听job , step)

作者: 刘小刀tina | 来源:发表于2020-04-27 19:08 被阅读0次

    针对job step 监听拦截功能的实现有两种:
    (1): 实现接口 重写其中的方法;
    (2):用注解的方法。@AfterJob@AfterStep

    1 . 监听器 (job , step)

    /**
     * @program: demo-spring-batch
     * @description
     *  集成接口的方式设置监听Job的监听器
     * @author: tina.liu
     * @create: 2020-04-27 18:36
     **/
    public class ListenerJobDemo implements JobExecutionListener {
        @Override
        public void beforeJob(JobExecution jobExecution) {
    
            System.out.println("监听器监听Job之前,job的名字为:"+jobExecution.getJobInstance().getJobName());
    
        }
    
        @Override
        public void afterJob(JobExecution jobExecution) {
            System.out.println("监听器监听Job之后,job的名字为:"+jobExecution.getJobInstance().getJobName());
        }
    
    }
    ======================================================
    /**
     * @program: demo-spring-batch
     * @description
     *   利用注解的方法 配置监听step的监听器
     * @author: tina.liu
     * @create: 2020-04-27 18:39
     **/
    public class Listenerstepchunk {
    
        @BeforeChunk
        public void beforeChunk(ChunkContext context){
            System.out.println("监听器监听step之前,step的名字为:"+context.getStepContext().getStepName());
    
        }
    
    
        @AfterChunk
        public void afterChunk(ChunkContext context){
            System.out.println("监听器监听step之后,step的名字为:"+context.getStepContext().getStepName());
    
        }
    }
    
    ======================================================
    @Configuration
    @EnableBatchProcessing
    public class ListenerDemo {
    
        @Autowired
        private JobBuilderFactory jobBuilderFactory ;
    
        @Autowired
        private StepBuilderFactory stepBuilderFactory;
    
        @Bean(value = "listenerDemoJob1")
        public Job listenerDemoJob1(){
            return jobBuilderFactory.get("listenerDemoJob1")
                    .start(listenerDemostep2())
                    .listener(new ListenerJobDemo())
                    .build();
        }
    
        /**
         * 创建step
         * @return
         */
        @Bean(value = "listenerDemostep2")
        public Step listenerDemostep2(){
            return stepBuilderFactory.get("listenerDemostep2")
                    .<String,String>chunk(2)
                    .faultTolerant()
                    .listener(new Listenerstepchunk())
                    .reader(read())
                    .writer(writer())
                    .build();
    
        }
    
        @Bean
        public ItemWriter<? super String> writer() {
            return new ItemWriter<String>() {
                @Override
                public void write(List<? extends String> list) throws Exception {
                    for (String str:list) {
                        System.out.println("str的值为"+str);
                    }
                }
            };
        }
    
        @Bean
        public ItemReader<? extends String> read() {
            return new ListItemReader<>(Arrays.asList("java","spring","mybatis","mysql"));
        }
    
    }
    ======================================================
    

    相关文章

      网友评论

          本文标题:spring batch 监听器(监听job , step)

          本文链接:https://www.haomeiwen.com/subject/jovuwhtx.html