작업제목 : 스프링(부트 포함) 배치 프로그램(SELECT 후 INSERT DB)
작업순서 :1. 스프링 부트 pom.xml 설정2. BatchVO.class, BatchConfiguration.class, BatchJob.class, BatchApplication.class 생성3. BatchConfiguration.class 작성4. BatchVO.class 작성5. BatchJob.class 작성
6. BatchApplication.class 작성
7. 정상 작동되는지 테스트 및 확인
8. jar 파일로 생성
9. bat 파일 생성 후 bat 파일로 실행
10. 윈도우 스케줄러에 등록하여 특정 시간에 bat 파일이 작동되도록 구성
프로젝트를 실행하기 위해서는 메인 클래스를 작성해야 한다.
package com.bootbatch.main;
import java.util.Date;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobInstance;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.JobParametersInvalidException;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
import org.springframework.batch.core.repository.JobRestartException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.stereotype.Component;
import com.bootbatch.job.BatchConfiguration;
import com.bootbatch.job.UserJob;
@SpringBootApplication
//@Component 어노테이션은 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션이다.
@Component
public class SpringBootBatch05Application {
public static void main(String[] args) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException, InterruptedException {
SpringApplication.run(SpringBootBatch05Application.class, args);
//ApplicationContext는 오브젝트 생성, 관계설정, 만들어지는 방식, 자동생성, 후처리 등 여러가지 일을한다.
ApplicationContext context = new AnnotationConfigApplicationContext(BatchConfiguration.class);
//JobLauncher 인터페이스를 보면 Job과 Job Parameter를 이용하여 요청된 Job을 수행한 후 JobExecution을 반환되는 run메소드가 정의되어 있다.
JobLauncher jobLauncher = context.getBean(JobLauncher.class);
//Job Bean을 얻어와 관계를 설정한다.
Job job = context.getBean(Job.class);
JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
jobParametersBuilder.addDate("date", new Date());
JobParameters jobParameters = jobParametersBuilder.toJobParameters();
//JobExecution은 작업 실행을 위한 단일 시도에 대한 기술적인 컨셉이다.
JobExecution jobExecution = jobLauncher.run(job, jobParameters);
BatchStatus batchStatus = jobExecution.getStatus();
while (batchStatus.isRunning()) {
System.out.println("Still running...");
Thread.sleep(1000);
}
System.out.println("Exit status: " + jobExecution.getExitStatus().getExitCode());
JobInstance jobInstance = jobExecution.getJobInstance();
System.out.println("job instance Id: " + jobInstance.getId());
}
}
'[프로젝트제작&정리] > 스프링 배치 프로그램 제작' 카테고리의 다른 글
[스프링(부트 포함) 배치 프로그램] 10. 정상 작동되는지 테스트 및 확인 (0) | 2020.03.31 |
---|---|
[스프링(부트 포함) 배치 프로그램] 9. 기타 설정 확인 (0) | 2020.03.31 |
[스프링(부트 포함) 배치 프로그램] 7. BatchJob.class 작성 (0) | 2020.03.31 |
[스프링(부트 포함) 배치 프로그램] 6. BatchVO.class 작성 (0) | 2020.03.24 |
[스프링(부트 포함) 배치 프로그램] 5. BatchConfiguration.class 작성 (0) | 2020.03.20 |