Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.my.spring.batch.java.config.demo.configuration; import javax.sql.DataSource; import org.springframework.batch.core.configuration.annotation.BatchConfigurer; import org.springframework.batch.core.explore.JobExplorer; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.PlatformTransactionManager; import org.apache.commons.dbcp2.BasicDataSource; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.explore.support.JobExplorerFactoryBean; import org.springframework.batch.core.launch.support.SimpleJobLauncher; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.jdbc.datasource.DataSourceTransactionManager; /** * * @author hilel */ @Configuration @PropertySource("classpath:mysql.batch.properties") @EnableBatchProcessing //@ComponentScan(basePackageClasses = MyBatchConfiguration.class) //@EnableAutoConfiguration public class BatchConfiguration implements BatchConfigurer { @Autowired private Environment environment; private DataSource getDataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(environment.getProperty("batch.jdbc.driver")); dataSource.setUrl(environment.getProperty("batch.jdbc.url")); dataSource.setUsername(environment.getProperty("batch.jdbc.user")); dataSource.setPassword(environment.getProperty("batch.jdbc.password")); return dataSource; } @Override public JobRepository getJobRepository() throws Exception { JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); factory.setDataSource(getDataSource()); factory.setTransactionManager(getTransactionManager()); factory.afterPropertiesSet(); return (JobRepository) factory.getObject(); } @Override public PlatformTransactionManager getTransactionManager() throws Exception { DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(); transactionManager.setDataSource(getDataSource()); return transactionManager; } @Override @Bean(name = "jobLauncher") public JobLauncher getJobLauncher() throws Exception { SimpleJobLauncher jobLauncher = new SimpleJobLauncher(); jobLauncher.setJobRepository(getJobRepository()); jobLauncher.afterPropertiesSet(); return jobLauncher; } @Override @Bean(name = "jobExplorer") public JobExplorer getJobExplorer() throws Exception { JobExplorerFactoryBean factory = new JobExplorerFactoryBean(); factory.setDataSource(getDataSource()); factory.afterPropertiesSet(); return (JobExplorer) factory.getObject(); } }