La demo del paquete demo9 contiene un ejemplo para leer archivos planos en los que se recibe una primera línea “cabecera” con datos generales del archivo y/o comunes a todos los registros, y las siguientes líneas son los registros que deben ser procesados individualmente.
Además veremos cómo se comparte información entre el reader y el writer, utilizando el contexto del step.
Las clases
Para esto deberemos desarrollar dos clases:
- CabeceraHandler, maneja el registro cabecera, leyéndolo y creando con sus datos el objeto de tipo CabeceraArchivo que se compartirá entre el reader y el writer. Para compartirlo lo guarda en el contexto del step. Este contexto lo setea spring-batch al encontrar en un método la anotación @BeforeStep. Además es necesario que el bean esté declarado como listener en el step.
- ConsolaItemWriter, cuyo bean también está declarado como listener del step, utiliza en esta ocacion los datos de la cabecera para imprimir por consola.
La configuración
En el archivo de configuración spring-batch-demo.xml se ecuentra toda la configuración necesaria para Spring Batch. Los beans importantes declarados en este archivo:
- cabeceraHandler, es el CabeceraHandler que se encarga de manipular la cabecera y dejarla disponible para el writer.
- cabeceraArchivo, es el nuevo bean en el que se mapeará el registro cabecera.