如何进行自定义Spring批处理作业?

时间:2015-04-24 09:07:26

标签: java spring spring-batch

我有一个问题。我希望有一个“父”工作,扩展SimpleJob,并做一些子工作常见的其他事情。它还注册了一个监听器。我想要的是以下类型的东西。

      class parentJob extends SimpleJob{
       ......}

然后在spring-config文件中:

      <job id="parentJob" class="classname" abstract="true">
            <listeners>
               <listener ref="parentListener"/>
            </listeners>
      </job>

      <job id="childJob1" parent="parentJob">
            <listeners merge="true">
               <listener ref="childListener"/>
            </listeners>
      </job>    

但看起来我们无法使用“job”标签和“class”属性定义“parentJob”。那么如何在Spring Batch中扩展Job接口?

有人可以指导我想要实现的目标吗?有没有人扩展SimpleJob类的例子?另外,扩展SimpleJob的子类是否允许以相同的方式注册监听器?我的意思是某种东西:

       <job id="customJob" class="classThatExtendsSimpleJob">
            <listeners>
               <listener ref="someListener" />
             </listeners>
       </job>

一如既往地谢谢

1 个答案:

答案 0 :(得分:0)

您可以通过为作业(或步骤)创建自定义构建器工厂来执行此操作,并通过调用构建器上的相应方法来添加默认功能。

请参阅here