강의메모 #
스프링 배치 도메인 이해 - JobParameter #
기본 개념 #
- Job을 실행할 때 함께 포함되어 사용되는 파라미터를 가진 도메인 객체
- 하나의 Job에 존재할 수 있는 여러개의 JobInstance를 구분하기 위한 용도
- JobParameters와 JobInstance는 1:1 관계
생성 및 바인딩 #
-
어플리케이션 실행 시 주입
- Java -jar LogBatch.jar requestDate=20210101
-
코드로 생성
- JobParameterBuilder
@Component public class JobParameterTest implements ApplicationRunner { @Autowired JobLauncher jobLauncher; @Autowired Job job; @Override public void run(ApplicationArguments args) throws Exception { JobParameters jobParameters = new JobParametersBuilder().addString("name", "user1") .addLong("seq", 1L) .addDate("date", new Date()) .toJobParameters(); jobLauncher.run(job, jobParameters); } }
- DefaultJobParametersConverter
// Create a JobParametersConverter DefaultJobParametersConverter jobParametersConverter = new DefaultJobParametersConverter(); // Convert command line arguments to JobParameters JobParameters jobParameters = jobParametersConverter.getJobParameters(new String[]{"param1=value1", "param2=value2"});
-
SpEL 이용
- @Value(“#{jobParameter[requestDate]}”), @JobScope, @StepScope 선언 필수
BATCH_JOB_EXECUTION_PARAM 테이블과 매핑 #
- JOB_EXECUTION 과 1:M 의 관계
-
BATCH_JOB_INSTANCE
-
BATCH_JOB_EXECUTION
-
BATCH_JOB_EXECUTION_PARAMS