spring batch : reader, processor, writer
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
package com.example.springbatch.application.job;
|
||||
|
||||
import com.example.springbatch.application.model.ArticleModel;
|
||||
import com.example.springbatch.domain.entity.Article;
|
||||
import com.example.springbatch.repository.ArticleRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.batch.core.Job;
|
||||
@@ -7,9 +10,17 @@ import org.springframework.batch.core.Step;
|
||||
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
|
||||
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
|
||||
import org.springframework.batch.core.launch.support.RunIdIncrementer;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.data.RepositoryItemWriter;
|
||||
import org.springframework.batch.item.data.builder.RepositoryItemReaderBuilder;
|
||||
import org.springframework.batch.item.data.builder.RepositoryItemWriterBuilder;
|
||||
import org.springframework.batch.item.file.FlatFileItemReader;
|
||||
import org.springframework.batch.item.file.builder.FlatFileItemReaderBuilder;
|
||||
import org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
@Configuration
|
||||
@Slf4j
|
||||
@@ -18,6 +29,7 @@ public class CreateArticleJobConfig {
|
||||
|
||||
private final JobBuilderFactory jobBuilderFactory;
|
||||
private final StepBuilderFactory stepBuilderFactory;
|
||||
private final ArticleRepository articleRepository;
|
||||
|
||||
@Bean
|
||||
public Job createArticleJob() {
|
||||
@@ -30,10 +42,38 @@ public class CreateArticleJobConfig {
|
||||
@Bean
|
||||
public Step createArticleStep() {
|
||||
return stepBuilderFactory.get("createArticleStep")
|
||||
.tasklet((contribution, chunkContext) -> {
|
||||
log.info("STEP!!!!!");
|
||||
return RepeatStatus.FINISHED;
|
||||
})
|
||||
.<ArticleModel, Article>chunk(10)
|
||||
.reader(createArticleReader())
|
||||
.processor(createArticleProcessor())
|
||||
.writer(createArticleWriter())
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public FlatFileItemReader<ArticleModel> createArticleReader() {
|
||||
return new FlatFileItemReaderBuilder<ArticleModel>()
|
||||
.name("createArticleReader")
|
||||
.resource(new ClassPathResource("Articles.csv"))
|
||||
.delimited()
|
||||
.names("title", "content")
|
||||
.fieldSetMapper(new BeanWrapperFieldSetMapper<>())
|
||||
.targetType(ArticleModel.class)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ItemProcessor<ArticleModel, Article> createArticleProcessor() {
|
||||
return articleModel -> Article.builder()
|
||||
.title(articleModel.getTitle())
|
||||
.content(articleModel.getContent())
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RepositoryItemWriter<Article> createArticleWriter() {
|
||||
return new RepositoryItemWriterBuilder<Article>()
|
||||
.repository(articleRepository)
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user