- Spring Batch - MySQL to Flat File
- Spring Batch - MySQL to XML
- Spring Batch - CSV to XML
- Spring Batch - XML to MySQL
- Spring Batch - Basic Application
- Readers, Writers & Processors
- Spring Batch - Configuration
- Spring Batch - Application
- Spring Batch - Architecture
- Spring Batch - Environment
- Spring Batch - Overview
- Spring Batch - Home
Spring Batch Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Spring Batch - Basic Apppcation
This chapter shows you the basic Spring Batch apppcation. It will simply execute a tasklet to displays a message.
Our Spring Batch apppcation contains the following files −
Configuration file − This is an XML file where we define the Job and the steps of the job. (If the apppcation involves readers and writers too, then the configuration of readers and writers is also included in this file.)
Context.xml − In this file, we will define the beans pke job repository, job launcher and transaction manager.
Tasklet class − In this class, we will write the processing code job (In this case, it displays a simple message)
Launcher class − in this class, we will launch the Batch Apppcation by running the Job launcher.
jobConfig.xml
Following is the configuration file of our sample Spring Batch apppcation.
<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
Following is the context.xml of our Spring Batch apppcation.
<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
Following is the Tasklet class which displays a simple message.
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; pubpc class MyTasklet implements Tasklet { @Override pubpc 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
Following is the code which launces the batch process.
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.ApppcationContext; import org.springframework.context.support.ClassPathXmlApppcationContext; pubpc class App { pubpc static void main(String[] args)throws Exception { // System.out.println("hello"); String[] springConfig = {"a_sample/job_hello_world.xml"}; // Creating the apppcation context object ApppcationContext context = new ClassPathXmlApppcationContext(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()); } }
On executing, the above SpringBatch program will produce the following output −
Apr 24, 2017 4:40:54 PM org.springframework.context.support.AbstractApppcationContext prepareRefresh INFO:Refreshing org.springframework.context.support.ClassPathXmlApppcationContext@2ef1e4fa: startup date [Mon Apr 24 16:40:54 IST 2017]; root of context hierarchy Apr 24, 2017 4:40:54 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions Apr 24, 2017 4:40:54 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions Apr 24, 2017 4:40:54 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons Apr 24, 2017 4:40:55 PM org.springframework.batch.core.launch.support.SimpleJobLauncher afterPropertiesSet INFO: No TaskExecutor has been set, defaulting to synchronous executor. Apr 24, 2017 4:40:55 PM org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run INFO: Job: [FlowJob: [name=helloWorldJob]] launched with the following parameters: [{}] Apr 24, 2017 4:40:55 PM org.springframework.batch.core.job.SimpleStepHandler handleStep INFO: Executing step: [step1] Hello This is a sample example of spring batch Apr 24, 2017 4:40:55 PM org.springframework.batch.core.launch.support.SimpleJobLauncher$1 run INFO: Job: [FlowJob: [name=helloWorldJob]] completed with the following parameters: [{}] and the following status: [COMPLETED] Exit Status : COMPLETEDAdvertisements