무지 단순한 소스지만 내 스스로 만들어본 첫번째 스프링 배치 프로그램이다.
파일로부터 데이터를 읽어서 다른 파일에 기록하도록 작성했다.
이 작업을 위해 domain객체, fieldSetMapper객체, fieldSetCreator, 로깅을 위한 advice 만 구현하면된다. 물론 비즈니스 로직이 없어서 간단할 수도 있겠지만..

jobRepository로 디비를 사용하지 않고 메모리를 사용하고 싶었다. 이에 대한 내용이 레퍼런스에 나온다.
 
<bean id="jobRepository" class=".....MapJobRepositoryFactoryBean">

이렇게 설정하면 된단다. 근데 이렇게 하면 에러난다. transactionManager가 필수란다. 결국 트랜잭션 매니저를 설정했다.

<bean id="jobRepository" class="......MapJobRepositoryFactoryBean"
p:transactionManager-ref="transactionManager"
lazy-init="true" autowire-candidate="false" />

MapJobRepositoryFactoryBean 내부를 보면 repository로 맵을 이용하는데 트랜잭션 매니저는 왜 필요한것인지..
어렵다
spring batch 다운로드 : http://static.springframework.org/downloads/nightly/release-download.php?project=BATCH

1. 다운받은후 압축을 풀면 samples/spring-batch-samples 디렉토리에 샘플코드가 있다.

2. maven을 이용하여 이클립스 프로젝트를 생성한다.

2.1 커맨드 창에서 samples/spring-batch-samples 디렉토리로 이동한다.

2.2 mvn eclipse:eclipse 를 치면 이클립스 환경파일들이 생성되고 .classpath에 라이브러리들도 셋팅이 된다.

3. 이클립스에서 환경정보를 셋팅해야 한다. .classpath에서 라이브러리들을 셋팅할 때 사용되는 변수가 M2_REPO를 참조하도록 되어있기 때문이다.

4. 여기까지 완료되면 테스트 프로그램을 실행시켜 각 예제를 수행해 볼 수 있다.

샘플을 설치하는 중에 maven을 처음 사용해봐서 삽질 좀 했다. 먼저 이클립스 프로젝트를 생성하는 명령어를 몰라서 헤매고 repository가 어디에 생성되는지 몰라서 한참을 찾아 헤맸었다. 명령어는 위에서 적었고 repository는 maven home/conf/settings.xml에서 <localRepository>repository 경로</localRepository> 를 설정해서 해결했다 이값을 설정하지 않을경우에 나같은 경우는 C:\Documents and Settings\Administrator\.m2\repository 이 위치가 repository 경로로 되었다

+ Recent posts