すべてのエラー ログが正しいファイルに出力されるように、ロガー リスナーがアタッチされたベース ステップをセットアップしたいと考えています。
以下のセットアップは十分に単純で、http://static.springsource.org/spring-batch/reference/html/configureStep.html#mergingListsOnStep で示されている例にかなり似ていますが、 http ://www.springframework.org/schemaに従っています。 /batch/spring-batch.xsd、リスナーはステップの下ではなく、タスクレットの下に属しているようです。
<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 の抽象インスタンスであることを意味します。