스프링 배치-구성

Spring Batch 애플리케이션을 작성하는 동안 Spring Batch 네임 스페이스에 제공된 XML 태그를 사용하여 작업, 단계, JobLauncher, JobRepository, Transaction Manager, 리더 및 작성자를 구성합니다. 따라서 아래와 같이 XML 파일에이 네임 스페이스를 포함해야합니다.

<beans xmlns = "http://www.springframework.org/schema/beans" 
   xmlns:batch = "http://www.springframework.org/schema/batch" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation = "http://www.springframework.org/schema/batch 

   http://www.springframework.org/schema/batch/spring-batch-2.2.xsd 
   http://www.springframework.org/schema/bean   
   http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

다음 섹션에서는 Spring Batch 네임 스페이스에서 사용할 수있는 다양한 태그, 속성 및 예제에 대해 설명합니다.

이 태그는 SpringBatch의 작업을 정의 / 구성하는 데 사용됩니다. 여기에는 일련의 단계가 포함되어 있으며 JobLauncher를 사용하여 시작할 수 있습니다.

이 태그에는 아래에 나열된 2 개의 속성이 있습니다.

S. 아니 속성 및 설명
1

Id

작업의 ID이며이 속성에 값을 지정해야합니다.

2

restartable

작업을 다시 시작할 수 있는지 여부를 지정하는 데 사용되는 속성입니다. 이 속성은 선택 사항입니다.

다음은 SpringBatch 작업의 XML 구성입니다.

<job id = "jobid" restartable = "false" > 
   . . . . . . . .  
   . . . . . . . .  
   . . . . . . . . // Step definitions 
</job>

단계

이 태그는 SpringBatch 작업의 단계를 정의 / 구성하는 데 사용됩니다. 그것은 다음 세 가지 속성을 가지고 있습니다-

S. 아니 속성 및 설명
1

Id

작업의 ID이며이 속성에 값을 지정해야합니다.

2

next

다음 단계를 지정하는 바로 가기입니다.

parent

구성이 상속해야하는 상위 Bean의 이름을 지정하는 데 사용됩니다.

다음은 SpringBatch 단계의 XML 구성입니다.

<job id = "jobid"> 
   <step id = "step1" next = "step2"/> 
   <step id = "step2" next = "step3"/> 
   <step id = "step3"/> 
</job>

큰 덩어리

이 태그는 청크를 정의 / 구성하는 데 사용됩니다. tasklet. 그것은 다음 네 가지 속성을 가지고 있습니다-

S. 아니 속성 및 설명
1

reader

항목 판독기 Bean의 이름을 나타냅니다. 유형의 값을 허용합니다.org.springframework.batch.item.ItemReader.

2

writer

항목 판독기 Bean의 이름을 나타냅니다. 유형의 값을 허용합니다.org.springframework.batch.item.ItemWriter.

processor

항목 판독기 Bean의 이름을 나타냅니다. 유형의 값을 허용합니다.org.springframework.batch.item.ItemProcessor.

4

commit-interval

트랜잭션을 커밋하기 전에 처리 할 항목 수를 지정하는 데 사용됩니다.

다음은 SpringBatch 청크의 XML 구성입니다.

<batch:step id = "step1"> 
   <batch:tasklet> 
      <batch:chunk reader = "xmlItemReader" 
         writer = "mysqlItemWriter" processor = "itemProcessor" commit-interval = "10"> 
      </batch:chunk> 
   </batch:tasklet> 
</batch:step>

JobRepository

JobRepository Bean은 관계형 데이터베이스를 사용하여 JobRepository를 구성하는 데 사용됩니다. 이 Bean은 유형의 클래스와 연관됩니다.org.springframework.batch.core.repository.JobRepository.

S. 아니 속성 및 설명
1

dataSource

데이터 소스를 정의하는 Bean 이름을 지정하는 데 사용됩니다.

2

transactionManager

transactionmanager를 정의하는 Bean의 이름을 지정하는 데 사용됩니다.

databaseType

작업 저장소에서 사용되는 관계형 데이터베이스의 유형을 지정합니다.

다음은 JobRepository의 구성 예입니다.

<bean id = "jobRepository" 
   class = "org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"> 
   <property name = "dataSource" ref = "dataSource" /> 
   <property name = "transactionManager" ref="transactionManager" /> 
   <property name = "databaseType" value = "mysql" /> 
</bean>

JobLauncher

JobLauncher Bean은 JobLauncher를 구성하는 데 사용됩니다. 클래스와 관련이 있습니다.org.springframework.batch.core.launch.support.SimpleJobLauncher(우리 프로그램에서). 이 Bean에는jobrepository을 정의하는 Bean의 이름을 지정하는 데 사용됩니다. jobrepository.

다음은 jobLauncher의 구성 예입니다.

<bean id = "jobLauncher" 
   class = "org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
   <property name = "jobRepository" ref = "jobRepository" /> 
</bean>

TransactionManager

TransactionManager 빈은 관계형 데이터베이스를 사용하여 TransactionManager를 구성하는 데 사용됩니다. 이 Bean은 유형의 클래스와 연관됩니다.org.springframework.transaction.platform.TransactionManager.

<bean id = "transactionManager"
   class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />

데이터 소스

데이터 소스 Bean은 다음을 구성하는 데 사용됩니다. Datasource. 이 Bean은 유형의 클래스와 연관됩니다.org.springframework.jdbc.datasource.DriverManagerDataSource.

S. 아니 속성 및 설명
1

driverClassName

데이터베이스에 연결하는 데 사용되는 드라이버의 클래스 이름을 지정합니다.

2

url

이것은 데이터베이스의 URL을 지정합니다.

username

데이터베이스에 연결할 사용자 이름을 지정합니다.

4

password

데이터베이스에 연결할 암호를 지정합니다.

다음은 datasource.

<bean id = "dataSource" 
   class = "org.springframework.jdbc.datasource.DriverManagerDataSource"> 
   <property name = "driverClassName" value = "com.mysql.jdbc.Driver" /> 
   <property name = "url" value = "jdbc:mysql://localhost:3306/details" /> 
   <property name = "username" value = "myuser" /> 
   <property name = "password" value = "password" /> 
</bean>