Spring Batch 6

[Spring Batch] JobScope, StepScope

1. Scope 란?   - 생명주기를 관리하기 위해 사용하는 어노테이션   - Spring 에서 bean으로 주입하면 기본적으로 싱글톤을 유지한다.   - Singleton 을 사용하지 않는 경우 Scope("prototype") 을 지정하여 주입이 일어날 때 마다 새로운 인스턴스를 생성한다.  2. JobScope 란?   - batch 에서 생명주기를 Job과 함께하는 어노테이션   - JobScope를 별도로 지정하지 않고 스케쥴러를 사용하여 반복 작업을 하면 이전에 작업한 이후부터 작업이 실행된다.   EX> jdbcItemReader를 사용한 경우, 다음 job 실행시 1page 부터 시작하는게 아니라 마지막 page 에서 부터 시작    - @JobScope를 사용하여 인스턴스로 Job의 생..

Spring Batch 2024.05.07

[Spring Batch] ItemWriter

1. ItemWriter  란?   - 처리 결과를 출력(저장) 2. ItemReader 종류   - FlatFileItemWriter : 파일의 고정 위치로 정의되거나 일부 특수 문자(예: 쉼표)로 구분된 데이터 필드가 있는 레코드 @Beanpublic FlatFileItemWriter itemWriter() { return new FlatFileItemWriterBuilder() .name("itemWriter") .resource(new FileSystemResource("result/output.txt")) .lineAggregator(new PassThroughLineAggregator()) .buil..

Spring Batch 2024.05.07

[Spring Batch] ItemReader

1. ItemReader 란?   - chunk 기반 작업에서 데이터를 읽어 들일 때, 사용하는 인터페이스  - 호출시 하나의 결과 데이터를 반환 ( null 이 나올 때 까지 )   2.ItemReader 종류   FlatFileItemReader : 파일의 고정 위치로 정의되거나 일부 특수 문자(예: 쉼표)로 구분된 데이터 필드가 있는 레코드 LineMapper : 단위 구분LineTokenizer : 데이터를 구분자 기준으로 토큰화FieldSetMapper : 객체로 매핑할 때 사용예시 코드Resource resource = new FileSystemResource("resources/rawdata.csv");public class DefaultLineMapper implements LineMapp..

Spring Batch 2024.05.07

[Spring Batch] Job 과 Step

* 참고 사이트 : https://docs.spring.io/spring-batch/reference/index.html Overview :: Spring BatchThe reference documentation is divided into several sections:docs.spring.io   1. Job 이란?    -  JobInstance, JobExecution 으로 구성  JobInstance : 논리적 작업 실행의 개념 ( JobParameter를 포함 )  JobExecution : 실제 Job 의 첫 번째 실행 JobExecution 은 다음과 같은 속성값을 가짐   -  실제 관련 코드 (Job 실행)@Scheduled(cron = "0 0 18 * * *") public ..

Spring Batch 2024.05.06

[Spring Batch] 스프링 배치 란?

* 참고 사이트 https://docs.spring.io/spring-batch/reference/domain.html The Domain Language of Batch :: Spring BatchTo any experienced batch architect, the overall concepts of batch processing used in Spring Batch should be familiar and comfortable. There are “Jobs” and “Steps” and developer-supplied processing units called ItemReader and ItemWriter. However, bedocs.spring.io  1. 스프링 배치란?   - 일괄 처리를 ..

Spring Batch 2024.05.06