有没有办法在spring批处理中启用和禁用listeners.i.e而不从上下文中删除配置我应该能够控制。任何人都可以帮我这个
<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>
如果没有从上下文中删除配置,我可以通过任何方式禁止侦听器监听。类似于启用或禁用侦听器的东西。当前我的侦听器用于在读写和步骤级别记录作业详细信息。 dnt想要为某些实例做日志
答案 0 :(得分:0)
在Spring批处理中没有提供任何内容来禁用已配置的侦听器。
但是你总是可以用
包装你写的任何逻辑if (enabled) then do
end if
答案 1 :(得分:0)
为什么不使用JavaApi(JobBuilder / StepBuilders)来构建您的工作?根据属性,您可以决定要添加哪些侦听器,哪些不是:
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();
我知道需要一些时间来熟悉JavaApi来构建SpringBatches。但这种努力是值得的,因为你可以完全动态地建立你的整个工作。