티스토리 뷰

 

모든 개발의 시작은 개발도구를 이용해서 프로젝트를 시작하는 것이다. 여기서는 STS를 이용해서 Spring Batch 프로젝트를 생성하는 방법에 대해서 알아보겠다. 

 

Spring Batch를 개발하기 위해 가장 쉽게 할 수 있는 방법은 Spring에서 제공하는 개발 도구인 STS를 활용하는 것이다. STS 자체를 다운로드 받아서 사용해도 되고 기존 사용하는 이클립스에 STS 플러그인을 설치해서 사용할 수도 있다.

다음 URL을 통해 다운로드 받거나 플러그인을 설치해서 사용할 수 있다. 이 글에서는 이클립스 Kepler SR1Spring IDE 3.4 버전을 이용하였다.

 

http://spring.io/tools/sts/all

 

STS 혹은 플러그인을 설치하게 되면 이클립스에서 Spring Project 를 생성할 수 있는 메뉴가 생긴다.

 

 

 

Spring Project 생성을 선택하면 다음 그림과 같은 화면이 나타나는 데 이 중에서 Spring Batch를 선택하고 생성하고자 하는 Project 명을 입력 한 후 다음화면으로 넘어간다. 처음 Spring Batch 프로젝트를 생성하는 것이라면 추가적으로 필요한 파일을 자동으로 다운로드 받게 되며 이 시간 동안 잠시의 대기 시간이 필요하다.

 

  

 

다음 화면에서는 Spring Batch의 자바 클래스에 대한 패키지 패턴을 입력한다. 최소 3개의 패키지 단계를 입력해야 다음 화면으로 넘어갈 수 있다.

 

  

 

Finish 버튼을 클릭하게 되면 최종적으로 프로젝트가 만들어지며 생성된 프로젝트는 다음 그림과 같다.

STS 혹은 MAVEN을 이용해서 Spring 기반 프로젝트를 해본 경험이 있다면 매우 친숙한 디렉토리 구조와 패키지 구조이다.

 

 

프로젝트를 처음 생성했으면 MAVEN Repository에서 연관된 라이브러리를 다운로드 하기 위해 많은 시간이 소요가 되며 다운로드와 빌드 과정을 거쳐 최종적으로 프로젝트를 확인할 수 있다. 다운로드가 완료가 되지 않은 상태라면 컴파일 에러가 나는 것으로 표시가 되지만 약간의 인내력을 발휘한다면 곧 해결이 된다.

프로젝트를 생성하게 되면 하나의 배치 어플리케이션 예제가 생성이 되는 데 꼭 기억해야 할 것은 이 글을 쓰는 시점에 최신 Spring Batch 2.2 버전이지만 STS를 이용해서 Spring Batch 프로젝트를 생성하게 되면 Spring Batch 2.1.7 버전으로 생성이 된다. 만일 2.2 버전으로 변경하고 싶으면 다음 파일 들을 수정해야 한다.

  •  pom.xml : Spring Batch 버전 정보를 변경
  •  launch-context.xml : 배치 Job 실행을 위한 Launcher 설정으로 beans 태그의 속성 변경
  •  module-context.xml : 샘플 배치 Job이며 beans 태그의 속성 변경
 우선 pom.xml 파일을 수정해 보면 properties 속성에 Spring Batch Spring Framework 버전이 명시되어 있다. 여기서 <spring.batch.version> 속성을 2.1.7.RELEASE 2.2.0.RELEASE로 변경하면 된다. 또한 Spring Framework 버전도 변경하고 싶다면 <spring.framework.version>을 변경하면 된다. 여기서는 Spring Batch 버전만 다음 그림과 같이 변경하겠다.

 

 

Pom.xml 파일을 수정하게 되면 관련 라이브러리를 다운로드 받고 빌드를 다시 하게 되는 데 이 때 다음 그림과 같이 2개의 파일에서 오류가 발생한다. 오류의 원인은 해당 xml 파일이 Spring Batch 2.1.7 기반으로 작성되어 있는 데 라이브러리는 2.2.0 이기 때문이다.

 

  

 

먼저 launch-context.xml을 확인해 보면 beans 속성이 다음과 같이 xsi:schemaLocation 이 정의 되어 있다.

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:batch="http://www.springframework.org/schema/batch"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:jdbc="http://www.springframework.org/schema/jdbc"

xsi:schemaLocation="

http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd

http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 

여기서 spring-batch-2.1.xsd spring-batch-2.2.xsd로 변경을 한다.

Module-context.xml 파일은 Job의 샘플 파일로 여기서 beans 설정은 다음과 같다.

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:batch="http://www.springframework.org/schema/batch"

xsi:schemaLocation="

http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

 

이 파일 역시 spring-batch-2.1.xsd spring-batch-2.2.xsd로 변경을 하면 컴파일 오류가 사라지고 본격적으로 스프링 배치 2.2 기반으로 배치 어플리케이션을 개발할 수 있는 환경이 마련된 것이다.