반응형
목차
아래 포스팅에서 이어진 내용입니다.
JSON 형식의 데이터를 읽어서 로그에 출력하는 간단한 예제
JsonJob1 😃
package com.test.lsy.batchsimpledbreader.batch;
import com.test.lsy.batchsimpledbreader.dto.MarketDto;
import lombok.RequiredArgsConstructor;
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.StepBuilderFactory;
import org.springframework.batch.item.json.JacksonJsonObjectReader;
import org.springframework.batch.item.json.JsonItemReader;
import org.springframework.batch.item.json.builder.JsonItemReaderBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
@Slf4j
@RequiredArgsConstructor
@Configuration
public class JsonJob1 {
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
private static final int chunkSize = 5;
//아이고 잡을 안 만들었네
@Bean
public Job jsonJob1_batchBuild() {
return jobBuilderFactory.get("jsonJob1_batchBuild")
.start(jsonJob1_batchStep1())
.build();
}
// step
@Bean
public Step jsonJob1_batchStep1() {
return stepBuilderFactory.get("jsonJob1_batchStep1")
.<MarketDto, MarketDto>chunk(chunkSize)
.reader(jsonJob1_jsonReader())
//쓰는 건 단순히 로그에 출력
.writer(MarketDto -> MarketDto.forEach(i -> {
log.debug(MarketDto.toString());
}))
.build();
}
// reader
@Bean
public JsonItemReader<MarketDto> jsonJob1_jsonReader() {
return new JsonItemReaderBuilder<MarketDto>()
.jsonObjectReader(new JacksonJsonObjectReader<>(MarketDto.class))
//json파일 가져올 경로
.resource(new ClassPathResource("sample/jsonJob1_input.json"))
.name("jsonJob1_jsonReader")
.build();
}
}
MarketDto 🙂
package com.test.lsy.batchsimpledbreader.dto;
import lombok.*;
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class MarketDto {
private String market;
private String korean_name;
private String english_name;
}
jsonJob1_input.json 🤗
개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.
틀린 점 있을 경우 댓글 부탁드립니다.
reference: https://www.youtube.com/watch?v=wy99cPHlMlA&list=PLogzC_RPf25HRSG9aO7qKrwbT-EecUMMR
다음 내용
반응형
'IT > development' 카테고리의 다른 글
[springBoot] spring batch scheduler simpleBatch (feat. scheduler) (50) | 2023.11.12 |
---|---|
[springBoot] spring batch JsonReader Filter Write (feat. JSON) (52) | 2023.11.11 |
[springBoot] spring batch csvFileReader write new File (feat. file) (53) | 2023.11.11 |
[springBoot] spring batch simple csvFileReader (feat. file) (51) | 2023.11.11 |
[springBoot] spring batch write to new file (feat. file) (55) | 2023.11.10 |
댓글