我想设置一个基本步骤,附加一个记录器侦听器,以确保所有错误日志最终都出现在正确的文件中。
下面的设置很简单,与http://static.springsource.org/spring-batch/reference/html/configureStep.html#mergingListsOnStep上的示例非常相似,但根据http://www.springframework.org/schema /batch/spring-batch.xsd,似乎听众不属于 step 而是属于 tasklet。
<step id="baseLoggedStep">
<listeners>
<listener>
<bean class="org.example...StepLogListener"/>
</listener>
</listeners>
</step>
<step id="myJobStep" parent="baseLoggedStep">
...
</step>
那么,谁是正确的,我如何使用正确的 xsd 来产生所需的结果?
以下基本步骤似乎可以解决问题,其中 StepLogListener 侦听器实现了 StepExecutionListener。
<batch:step id="baseLoggedStep" abstract="true">
<batch:tasklet>
<batch:listeners>
<batch:listener ref="stepLogListener">
<bean class="com.bossmedia.gem.platform.batch.StepLogListener"/>
</batch:listener>
</batch:listeners>
</batch:tasklet>
</batch:step>
然而,这似乎不是最优的,坦率地说也不完全正确。这意味着 baseLoggedStep 是 TaskletStep 的抽象实例,对吗?