인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

원동명님의 프로필 이미지

작성한 질문수

[스프링 배치 입문] 예제로 배우는 핵심 Spring Batch

일단 실행 - Hello, World (스프링 배치 구조 익히기)

Spring Batch 5버전의 경우 실행법 공유

작성

·

57

0

잡 파라미터 넣는것으로는 실행아 안되고요

 

runJob 메소드 만들어서 실행해야합니다.

코드 공유

public class SpringBatchTutorialApplication  {

    @Autowired
    private JobLauncher jobLauncher;

    @Autowired
    private Job helloWorldJob;

    @Autowired
    private JobRegistry jobRegistry;

    public static void main(String args[]) {
       SpringApplication.run(SpringBatchTutorialApplication.class, args);

       SpringApplication application = new SpringApplication(SpringBatchTutorialApplication.class);
       application.run(args).getBean(SpringBatchTutorialApplication.class).runJob(args);
       //System.out.println(args[0]);
    }
    public void runJob(String args[]) {
       try {
          String jobName = getJobNameFromArgs(args);
          System.out.println(jobName);
          Job job = jobRegistry.getJob(jobName);
          JobExecution jobExecution = jobLauncher.run(job, new JobParameters());
          System.out.println("Job Execution Status: " + jobExecution.getStatus());
       } catch (Exception e) {
          e.printStackTrace();
       }
    }

    private String getJobNameFromArgs(String args[]) {
       for (String arg : args) {
          if (arg.startsWith("JobName=")) {
             return arg.substring("JobName=".length());
          }
       }
       return null;
    }
}

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 원동명님. Spring Batch 5버전의 실행 방법에 관한 질문 주셨네요.

질문에서 제공해주신 코드는 Spring Batch를 실행하기 위한 커스텀 메소드 runJob을 사용하여 특정 잡을 실행하는 방법을 보여주고 있습니다. 아래에 간단히 핵심 내용을 설명드릴게요:

  1. JobLauncher를 통한 잡 실행: jobLauncher.run(job, new JobParameters())를 통해 잡을 실행합니다. 이때 JobParameters를 사용하여 잡의 파라미터를 설정할 수 있습니다.

  2. 메인 메소드에서 잡 실행: SpringApplication을 통해 애플리케이션을 실행한 뒤, 특정 잡을 실행하기 위해 runJob 메소드를 호출합니다. 이 메소드에서 전달받은 파라미터에서 잡 이름을 추출하여 해당 잡을 실행합니다.

  3. 잡 이름 추출 및 실행: getJobNameFromArgs 메소드는 전달된 인자 중 “JobName=“으로 시작하는 값을 찾아 잡 이름을 결정합니다.

이 방법을 통해 다양한 잡을 매번 다른 파라미터로 손쉽게 실행할 수 있습니다. 코드가 잘 동작하지 않는다면, @Autowired로 주입되는 빈들이 실제로 등록되어 있는지, JobRegistry에 잡들이 잘 등록되어 있는지도 확인해보시면 좋겠습니다.

관련된 Q&A

위의 링크들은 다양한 Spring Batch 관련 문제 해결에 도움이 될 수 있는 사례들입니다. 추가적인 문제가 발생할 경우, 해당 사례들을 참고하시면 좋을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.