В этой главе показано базовое приложение Spring Batch. Он просто выполнит тасклет для отображения сообщения.
Наше приложение Spring Batch содержит следующие файлы —
-
Файл конфигурации — это файл XML, в котором мы определяем задание и этапы задания. (Если приложение также включает в себя читателей и писателей, то конфигурация читателей и писателей также включена в этот файл.)
-
Context.xml — в этом файле мы определим компоненты, такие как репозиторий заданий, средство запуска заданий и менеджер транзакций.
-
Класс тасклетов — в этом классе мы напишем задание обработки кода (в этом случае отображается простое сообщение)
-
Класс запуска — в этом классе мы запустим пакетное приложение, запустив модуль запуска Job.
Файл конфигурации — это файл XML, в котором мы определяем задание и этапы задания. (Если приложение также включает в себя читателей и писателей, то конфигурация читателей и писателей также включена в этот файл.)
Context.xml — в этом файле мы определим компоненты, такие как репозиторий заданий, средство запуска заданий и менеджер транзакций.
Класс тасклетов — в этом классе мы напишем задание обработки кода (в этом случае отображается простое сообщение)
Класс запуска — в этом классе мы запустим пакетное приложение, запустив модуль запуска Job.
jobConfig.xml
Ниже приведен файл конфигурации нашего примера приложения Spring Batch.
<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/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd "> <import resource="context.xml" /> <!-- Defining a bean --> <bean id = "tasklet" class = "a_sample.MyTasklet" /> <!-- Defining a job--> <batch:job id = "helloWorldJob"> <!-- Defining a Step --> <batch:step id = "step1"> <tasklet ref = "tasklet"/> </batch:step> </batch:job> </beans>
context.xml
Ниже приводится context.xml нашего приложения Spring Batch.
<beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <bean id = "jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean"> <property name = "transactionManager" ref = "transactionManager" /> </bean> <bean id = "transactionManager" class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" /> <bean id = "jobLauncher" class = "org.springframework.batch.core.launch.support.SimpleJobLauncher"> <property name = "jobRepository" ref = "jobRepository" /> </bean> </beans>
Tasklet.java
Ниже приведен класс Tasklet, который отображает простое сообщение.
import org.springframework.batch.core.StepContribution; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.batch.repeat.RepeatStatus; public class MyTasklet implements Tasklet { @Override public RepeatStatus execute(StepContribution arg0, ChunkContext arg1) throws Exception { System.out.println("Hello This is a sample example of spring batch"); return RepeatStatus.FINISHED; } }
App.java
Ниже приведен код, который запускает пакетный процесс.
import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args)throws Exception { // System.out.println("hello"); String[] springConfig = {"a_sample/job_hello_world.xml"}; // Creating the application context object ApplicationContext context = new ClassPathXmlApplicationContext(springConfig); // Creating the job launcher JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher"); // Creating the job Job job = (Job) context.getBean("helloWorldJob"); // Executing the JOB JobExecution execution = jobLauncher.run(job, new JobParameters()); System.out.println("Exit Status : " + execution.getStatus()); } }
При выполнении вышеупомянутая программа SpringBatch выдаст следующий вывод: