Spring Batch는 대량의 데이터 처리를 위해 설계된 스프링 프레임워크의 확장 모듈입니다. 이는 일반적으로 배치 작업(batch jobs)의 실행과 관리에 사용됩니다. 배치 작업은 특정한 시점에 자동으로 실행되거나 사용자의 개입 없이 반복 실행되는 작업을 의미합니다.
Spring Batch에서 배치가 실패하여 작업 재시작을 하게 된다면 처음부터가 아닌 실패한 지점부터 실행을 하게 됩니다. 또한 중복 실행을 막기 위해 성공한 이력이 있는 Batch는 동일한 Parameters로 실행 시 Exception이 발생하게 됩니다.
JobLauncher는 Job과 JobParameters를 사용하여 Job을 실행하는 객체입니다.
Job은 배치처리 과정을 하나의 단위로 만들어 놓은 객체입니다. 또한 배치 처리 과정에 있어 전체 계층 최상단에 위치하고 있습니다. 하나의 Job은 여러 Step을 포함할 수 있습니다.
Job Instance는 논리적인 작업 실행을 나타냅니다. 즉, 하나의 Job은 여러개의 Job Instance를 만들어낼 수 있습니다. 때문에 Job을 구분하기 위해선 별도의 jobParameter가 필요하며 동일한 내용의 Job이 실행되더라도, 파라미터가 다르면 다른 Job Instance로 취급됩니다.