2014년 3월 10일 월요일

제 2 장. Spring Batch 2.2의 새로운 특징

 2 .  Spring Batch 2.2 새로운 특징
Spring Batch 2.2 release 6가지 주요 테마로 구성된다:
  • Spring Data Integration
  • Java Configuration
  • Spring Retry
  • Job Parameters
2.1. Spring Data Integration
Spring Batch 2.0 출시 이후, Spring Data project Spring NoSQL 동향에 대한 지원을 해왔다. Spring Batch 2.2 출시 버전에 Spring Data추상화를 통해 MongoDB, Neo4j, Gemfire 네이티브 기능 가능하도록 지원했다.
2.2 버전은 사용자정의 Spring Data Repository 사용자가 직접 작성할수 있는 기능도 지원했다. RepositoryItemReader RepositoryItemWriter는 각각 repository implementation (각각 PagingAndSortingRepository CrudRepository) 감싸 영구 데이터와 데이터를 주고받는다.
2.2. Java Configuration
버전 2.2.0이전에는 job 설정하는 옵션은 수작업을 하거나 batch DSL(dsl파일)방식으로 XML설정밖에 없었다. 그러나 2.2.0버전에서  Job 정의하는데 자바기반 설정이 추가되었다. 신규 설정옵션을 지원하기 위해 annotation builder클래스가 추가되었다. 다음은 이전에 정의하던 방식이다:
   

   
       
       
   

   

   
       
   
   
이젠 @EnableBatchProcessing annotation 통해 설정가능하고 다음과 같이 JobBuilderFactory StepBuilderFactory를 통해 자바기반설정이 지원된다:
 @Configuration
 @EnableBatchProcessing
 @Import(DataSourceCnfiguration.class)
 public class AppConfig {

     @Autowired
      private JobBuilderFactory jobs;

     @Bean
     public Job job() {
          return jobs.get("myJob").start(step1()).next(step2()).build();
     }

     @Bean
     protected Step step1() {
          ...
     }

     @Bean
     protected Step step2() {
          ...
     }
}
많은 공통클래스들이 @EnableBatchProcessing annotation 참조하는데 기본적으로 autowiring 가능하다. 공통클래스들은  JobRepsitoryJobLauncherJobRegistryPlatformTransactionManager,JobBuilderFactory, StepBuilderFactory 등이 있다. Job step 새로운 자바 설정방식으로 설정하는 방법은 4.2 “Java Config” 나와있다.
2.3. Spring Retry
The ability to retry an operation via the RetryTemplate으로 동작을 재시도하는 기능은 원래부터Spring Batch 특성이다. 하지만 기능은 예를 들어 통합Spring같은 다른 프레임웍에서는 아주 유용한 특성으로 인식되어 2.2.0버전 출시때, 재시도로직은Spring Retry라는 자체 라이브러리로 따로 분리되었다. 변경으로 2가지 주요 영향도가 발생했는데, 하나는 org.springframework.batch.retry 패키지를 대부분 신규 라이브러리로 옮긴것과, 패키지명에 “batch” org.springframework.retry로 바꿨다는 것이다.
2.4. Job Parameters
Spring Batch 2.2.0 출시이전에는 job execution으로 전달되는 인자가 job구분자값으로 사용되었다. 때문에 job 재실행하려면 인자 값이 변경될 없도록 한정되는 문제가 생겼다. 경우를 수용하기 위해 2.2.0 job인자를 job구분자값으로 쓰도록 하는 방식을 들였다.
기본적으로 2.2.0에서 job 인자는 아직까지는 구분자값으로 쓰인다. 하지만, Spring Batch 이제부터 사용자가 인자를 job인스턴스구분에 써도 되도록 하고 있다. 변경사항을 지원하기 위해 batch 도메인모델이 변경되었다. 2.2.0이전에는 job 인자값은 JobInstance와 관계를 맺었었다. 2.2.0이후부터는 , JobExecution과 관계를 맺는 것으로 변경되었다. 변경사항에 따라 job repository database 스키마도 변경도 필요하다.

원문

댓글 1개:

quinkagen :

Grand Ronde Casino & Spa Hotel, Grand Rapids - Mapyro
Grand Ronde Casino & Spa Hotel is located in Grand 구리 출장안마 Rapids, 동해 출장안마 MI, United States and offers 서귀포 출장마사지 a variety of entertainment options 군산 출장샵 and is open daily 24 hours. Rating: 2 · ‎3 reviews 통영 출장안마