Java 启用和禁用spring批处理侦听器
在SpringBatch中是否有任何方法可以启用和禁用侦听器。也就是说,在不从上下文中删除配置的情况下,我应该能够控制它。有人可以帮我吗Java 启用和禁用spring批处理侦听器,java,spring,spring-batch,Java,Spring,Spring Batch,在SpringBatch中是否有任何方法可以启用和禁用侦听器。也就是说,在不从上下文中删除配置的情况下,我应该能够控制它。有人可以帮我吗 <batch:job id="JobA" restartable="true"> <batch:step id="abcde"> <batch:tasklet transaction-manager="transactionManager"> <b
<batch:job id="JobA" restartable="true">
<batch:step id="abcde">
<batch:tasklet transaction-manager="transactionManager">
<batch:chunk reader="Reader" writer="Writer" processor="Processor" commit-interval="10" />
</batch:tasklet>
<listeners>
<listener ref="customStepListener" />
<listener ref="customItemReaderListener" />
<listener ref="customItemWriterListener" />
</listeners>
</batch:step>
</batch:job>
在不从上下文中删除配置的情况下,是否有任何方法可以禁用侦听器。类似于启用或禁用侦听器的标志。目前,我的侦听器用于在读写和步骤级别记录作业详细信息。我不想对某些实例进行日志记录。spring build中未提供任何内容将禁用已配置侦听器的批处理 然而,你总是可以包装你写的任何逻辑
if (enabled) then do
end if
为什么不使用JavaApi(JobBuilder/StepBuilder)来构建作业?根据属性,您可以决定添加哪些侦听器,哪些不添加:
SimpleStepBuilder builder = stepBuilderFactory.get(STEP_NAME)
.<InputDto, OutputDto>chunk(100)
.reader(myreader)
.writer(mywriter);
if (conditionForListener1) {
builder.listener(mylistener1);
}
if (conditionForListener2) {
builder.listener(mylistener2);
}
return builder.build();
simplestbuilder builder=stepBuilderFactory.get(步骤名称)
.chunk(100)
.reader(myreader)
.作者(mywriter);
如果(Listener1的条件){
监听器(mylistener1);
}
if(Listener2的条件){
监听器(mylistener2);
}
返回builder.build();
我知道要熟悉JavaApi来构建SpringBatchs需要一些时间。但是这样做是值得的,因为您可以完全动态地构建整个作业。启用和禁用是什么意思?请提供一些上下文代码。我已经编辑了我的问题。您可以检查@hdost,@RafikBELDIBut,这实际上不会阻止侦听器进行侦听。它只是阻止侦听器方法正确地执行其工作@saifudin这是正确的。如果不从配置中删除侦听器,则无法禁用它