사용자 도구

사이트 도구


springframework:batch:commandlinejobrunner

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
springframework:batch:commandlinejobrunner [2018/04/30 12:09]
kwon37xi 만듦
springframework:batch:commandlinejobrunner [2018/07/24 17:57] (현재)
kwon37xi
줄 1: 줄 1:
 ====== Spring Batch Command Line Job Runner ====== ====== Spring Batch Command Line Job Runner ======
 +  * [[springframework:batch|Spring Framework Batch]] 명령행 실행기
   * Spring Batch를 명령행으로 실행할 수 있다.   * Spring Batch를 명령행으로 실행할 수 있다.
   * [[https://www.mkyong.com/spring-batch/run-spring-batch-job-with-commandlinejobrunner/|Run Spring batch job with CommandLineJobRunner – Mkyong.com]]   * [[https://www.mkyong.com/spring-batch/run-spring-batch-job-with-commandlinejobrunner/|Run Spring batch job with CommandLineJobRunner – Mkyong.com]]
줄 16: 줄 17:
  
 ===== SpringBoot 와 연동 ===== ===== SpringBoot 와 연동 =====
 +
 +아래 사용하지 말 것. [[springframework:springboot:batch|SpringBoot와 SpringBatch]] 참조
 +
 +-------------
 +
   * [[https://examples.javacodegeeks.com/enterprise-java/spring/batch/spring-batch-commandlinejobrunner-example/|Spring Batch CommandLineJobRunner Example]] Spring Boot + Batch CommandLineJobRunner 예제   * [[https://examples.javacodegeeks.com/enterprise-java/spring/batch/spring-batch-commandlinejobrunner-example/|Spring Batch CommandLineJobRunner Example]] Spring Boot + Batch CommandLineJobRunner 예제
   * Spring Boot와 연동시에는 ''botJar'' 를 변경해주면 된다.   * Spring Boot와 연동시에는 ''botJar'' 를 변경해주면 된다.
줄 22: 줄 28:
 bootJar { bootJar {
     mainClassName = 'org.springframework.batch.core.launch.support.CommandLineJobRunner'     mainClassName = 'org.springframework.batch.core.launch.support.CommandLineJobRunner'
 +}
 +</code>
 +
 +Spring batch Job이 자동시작되는 것을 막고 명시적 실행만 되게 하려면 다음 설정이 ''application.yml''에 필요하다.
 +
 +<code yml>
 +spring:
 +  batch:
 +    job:
 +      enabled: false
 +</code>
 +
 +이제 Java Config 파일에 Job을 ''@Configuration'' 과 ''@EnableBatchProcessing''이 필요하다. 생성해준다.
 +<code java>
 +@Configuration
 +@EnableBatchProcessing
 +public class SpringBatchConfig {
 +
 +    Logger logger = LoggerFactory.getLogger(SpringBatchConfig.class);
 +
 +    @Autowired
 +    public JobBuilderFactory jobBuilderFactory;
 +
 +    @Autowired
 +    public StepBuilderFactory stepBuilderFactory;
 +
 +    @Bean
 +    public Job job1() {
 +        return jobBuilderFactory.get("job1")
 +                .incrementer(new RunIdIncrementer())
 +                .start(step1()).build();
 +    }
 +
 +    private TaskletStep step1() {
 +        Tasklet tasklet = (contribution, context) -> {
 +            logger.info("This is from tasklet step with parameter ->"
 +                    + context.getStepContext().getJobParameters().get("message"));
 +            return RepeatStatus.FINISHED;
 +        };
 +        return stepBuilderFactory.get("step1").tasklet(tasklet).build();
 +    }
 } }
 </code> </code>
줄 27: 줄 74:
 이제 ''gradlew build'' 로 생성된 통합 jar 파일을 직접 실행하는 방식으로 처리 가능해진다.  이제 ''gradlew build'' 로 생성된 통합 jar 파일을 직접 실행하는 방식으로 처리 가능해진다. 
 <code sh> <code sh>
-java -jar build/libs/example-0.0.1-SNAPSHOT.jar com.example.config.SpringBatchConfig jobName message=hi+java -jar build/libs/example-0.0.1-SNAPSHOT.jar com.example.config.SpringBatchConfig 
 +    jobName message=hi
 </code> </code>
springframework/batch/commandlinejobrunner.1525059557.txt.gz · 마지막으로 수정됨: 2018/04/30 12:09 저자 kwon37xi