diff --git a/src/main/java/com/template/worker/global/runner/BatchJobRunner.java b/src/main/java/com/template/worker/global/runner/BatchJobRunner.java index 8797c78..c92cae3 100644 --- a/src/main/java/com/template/worker/global/runner/BatchJobRunner.java +++ b/src/main/java/com/template/worker/global/runner/BatchJobRunner.java @@ -1,5 +1,9 @@ package com.template.worker.global.runner; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Optional; + import org.springframework.batch.core.Job; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.JobParametersBuilder; @@ -27,17 +31,21 @@ public class BatchJobRunner implements ApplicationRunner { public void run(ApplicationArguments args) throws Exception { String jobName = - args.getOptionValues("spring.batch.job.name").stream() - .findFirst() + Optional.ofNullable(args.getOptionValues("spring.batch.job.name")) + .flatMap(values -> values.stream().findFirst()) .orElseThrow( () -> new IllegalArgumentException( "Missing --spring.batch.job.name")); + // invMonth가 없으면 현재 년월(yyyyMM)을 기본값으로 생성 String invMonth = - args.getOptionValues("invMonth").stream() - .findFirst() - .orElseThrow(() -> new IllegalArgumentException("Missing invMonth=yyyyMM")); + Optional.ofNullable(args.getOptionValues("invMonth")) + .flatMap(values -> values.stream().findFirst()) + .orElseGet( + () -> + LocalDate.now() + .format(DateTimeFormatter.ofPattern("yyyyMM"))); Job job = jobRegistry.getJob(jobName); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e8de256..00471da 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -12,6 +12,7 @@ spring: name: batch-core main: + web-application-type: none time-zone: Asia/Seoul jackson: time-zone: Asia/Seoul