* fifth Batch 상태 저장 금지 close #6

This commit is contained in:
kimjihun
2024-08-05 18:38:25 +09:00
parent 8cd6742b53
commit 87dea6017a
2 changed files with 13 additions and 8 deletions

View File

@@ -6,6 +6,7 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.ItemStreamException;
import org.springframework.batch.item.ItemStreamWriter;
@@ -17,16 +18,16 @@ public class ExcelRowWriter implements ItemStreamWriter<BeforeEntity> {
private final String filePath;
private Workbook workbook;
private Sheet sheet;
private int rowIndex = 0;
private int currentRowNumber;
public ExcelRowWriter(String filePath) throws IOException {
this.filePath = filePath;
initialize();
currentRowNumber = 0;
}
private void initialize() throws ItemStreamException {
@Override
public void open(ExecutionContext executionContext) throws ItemStreamException {
workbook = new XSSFWorkbook();
sheet = workbook.createSheet("Sheet1");
}
@@ -34,7 +35,7 @@ public class ExcelRowWriter implements ItemStreamWriter<BeforeEntity> {
@Override
public void write(Chunk<? extends BeforeEntity> chunk) {
for (BeforeEntity entity : chunk) {
Row row = sheet.createRow(rowIndex++);
Row row = sheet.createRow(currentRowNumber++);
row.createCell(0).setCellValue(entity.getUsername());
}
}
@@ -49,10 +50,9 @@ public class ExcelRowWriter implements ItemStreamWriter<BeforeEntity> {
} finally {
try {
workbook.close();
rowIndex = 0;
} catch (IOException e) {
throw new ItemStreamException(e);
}
}
}
}
}

View File

@@ -58,13 +58,18 @@ public class FifthBatch {
@Bean
public RepositoryItemReader<BeforeEntity> fifthBeforeReader() {
return new RepositoryItemReaderBuilder<BeforeEntity>()
RepositoryItemReader<BeforeEntity> reader = new RepositoryItemReaderBuilder<BeforeEntity>()
.name("beforeReader")
.pageSize(10)
.methodName("findAll")
.repository(beforeRepository)
.sorts(Map.of("id", Sort.Direction.ASC))
.build();
// 전체 데이터 셋에서 어디까지 수행 했는지의 값을 저장하지 않음
reader.setSaveState(false);
return reader;
}
@Bean