* FourthBatch 엑셀 읽기 작성 중
This commit is contained in:
@@ -24,6 +24,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation 'org.apache.poi:poi-ooxml:5.3.0'
|
||||||
implementation 'org.springframework.boot:spring-boot-starter-batch'
|
implementation 'org.springframework.boot:spring-boot-starter-batch'
|
||||||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||||
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
|
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import com.example.springbatch.repository.BeforeRepository;
|
|||||||
import org.springframework.batch.core.Job;
|
import org.springframework.batch.core.Job;
|
||||||
import org.springframework.batch.core.Step;
|
import org.springframework.batch.core.Step;
|
||||||
import org.springframework.batch.core.job.builder.JobBuilder;
|
import org.springframework.batch.core.job.builder.JobBuilder;
|
||||||
import org.springframework.batch.core.launch.support.RunIdIncrementer;
|
|
||||||
import org.springframework.batch.core.repository.JobRepository;
|
import org.springframework.batch.core.repository.JobRepository;
|
||||||
import org.springframework.batch.core.step.builder.StepBuilder;
|
import org.springframework.batch.core.step.builder.StepBuilder;
|
||||||
import org.springframework.batch.item.ItemProcessor;
|
import org.springframework.batch.item.ItemProcessor;
|
||||||
|
|||||||
89
src/main/java/com/example/springbatch/batch/FourthBatch.java
Normal file
89
src/main/java/com/example/springbatch/batch/FourthBatch.java
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
package com.example.springbatch.batch;
|
||||||
|
|
||||||
|
import com.example.springbatch.entity.AfterEntity;
|
||||||
|
import com.example.springbatch.repository.AfterRepository;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.springframework.batch.core.Job;
|
||||||
|
import org.springframework.batch.core.Step;
|
||||||
|
import org.springframework.batch.core.job.builder.JobBuilder;
|
||||||
|
import org.springframework.batch.core.repository.JobRepository;
|
||||||
|
import org.springframework.batch.core.step.builder.StepBuilder;
|
||||||
|
import org.springframework.batch.item.ItemProcessor;
|
||||||
|
import org.springframework.batch.item.ItemReader;
|
||||||
|
import org.springframework.batch.item.data.RepositoryItemWriter;
|
||||||
|
import org.springframework.batch.item.data.builder.RepositoryItemWriterBuilder;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class FourthBatch {
|
||||||
|
|
||||||
|
private final JobRepository jobRepository;
|
||||||
|
private final PlatformTransactionManager platformTransactionManager;
|
||||||
|
private final AfterRepository afterRepository;
|
||||||
|
|
||||||
|
public FourthBatch(JobRepository jobRepository, PlatformTransactionManager platformTransactionManager, AfterRepository afterRepository) {
|
||||||
|
this.jobRepository = jobRepository;
|
||||||
|
this.platformTransactionManager = platformTransactionManager;
|
||||||
|
this.afterRepository = afterRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Job fourthJob() {
|
||||||
|
|
||||||
|
System.out.println("fourth job");
|
||||||
|
|
||||||
|
return new JobBuilder("fourthJob", jobRepository)
|
||||||
|
.start(fourthStep())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Step fourthStep() {
|
||||||
|
|
||||||
|
return new StepBuilder("fourthStep", jobRepository)
|
||||||
|
.<Row, AfterEntity> chunk(10, platformTransactionManager)
|
||||||
|
.reader(excelReader())
|
||||||
|
.processor(middleProcessor())
|
||||||
|
.writer(afterWriter())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ItemReader<Row> excelReader() {
|
||||||
|
|
||||||
|
try {
|
||||||
|
return new ExcelRowReader("path/to/your/excel/file.xlsx");
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ItemProcessor<Row, AfterEntity> middleProcessor() {
|
||||||
|
|
||||||
|
return new ItemProcessor<Row, AfterEntity>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AfterEntity process(Row item) throws Exception {
|
||||||
|
|
||||||
|
AfterEntity afterEntity = new AfterEntity();
|
||||||
|
afterEntity.setUsername(item.getCell(0).getStringCellValue());
|
||||||
|
|
||||||
|
return afterEntity;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RepositoryItemWriter<AfterEntity> afterWriter() {
|
||||||
|
|
||||||
|
return new RepositoryItemWriterBuilder<AfterEntity>()
|
||||||
|
.repository(afterRepository)
|
||||||
|
.methodName("save")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@ public class FirstSchedule {
|
|||||||
this.jobRegistry = jobRegistry;
|
this.jobRegistry = jobRegistry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(cron = "10 * * * * *", zone = "Asia/Seoul")
|
//@Scheduled(cron = "10 * * * * *", zone = "Asia/Seoul")
|
||||||
public void runFirstJob() throws Exception {
|
public void runFirstJob() throws Exception {
|
||||||
|
|
||||||
System.out.println("first schedule start");
|
System.out.println("first schedule start");
|
||||||
|
|||||||
Reference in New Issue
Block a user