spring batch : jobParameters

This commit is contained in:
haerong22
2021-05-11 15:01:11 +09:00
parent 9268189974
commit 0eb3f353cf
2 changed files with 26 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
package com.example.springbatch.application.job;
import com.example.springbatch.application.job.param.CreateArticleJobParam;
import com.example.springbatch.application.model.ArticleModel;
import com.example.springbatch.domain.entity.Article;
import com.example.springbatch.repository.ArticleRepository;
@@ -8,7 +9,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.JobScope;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepScope;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemWriter;
@@ -33,6 +36,7 @@ public class CreateArticleJobConfig {
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
private final ArticleRepository articleRepository;
private final CreateArticleJobParam createArticleJobParam;
private final JdbcTemplate jdbcTemplate;
@Bean
@@ -44,6 +48,7 @@ public class CreateArticleJobConfig {
}
@Bean
@JobScope
public Step createArticleStep() {
return stepBuilderFactory.get("createArticleStep")
.<ArticleModel, Article>chunk(1000)
@@ -54,7 +59,9 @@ public class CreateArticleJobConfig {
}
@Bean
@StepScope
public FlatFileItemReader<ArticleModel> createArticleReader() {
log.info("PARAM!!!!!! {}", createArticleJobParam.getName());
return new FlatFileItemReaderBuilder<ArticleModel>()
.name("createArticleReader")
.resource(new ClassPathResource("Articles.csv"))

View File

@@ -0,0 +1,19 @@
package com.example.springbatch.application.job.param;
import lombok.Getter;
import org.springframework.batch.core.configuration.annotation.JobScope;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
@JobScope
@Getter
public class CreateArticleJobParam {
private String name;
@Value("#{jobParameters[name]}")
private void setName(String name) {
this.name = name;
}
}