Si te encuentras con alguna parte que te causa duda puedes dejarlo en la sección de comentarios y te responderemos rápidamente.
Solución:
Simplemente cree una configuración sin fuente de datos para la configuración por lotes:
@Configuration
@EnableAutoConfiguration
@EnableBatchProcessing
public class BatchConfiguration extends DefaultBatchConfigurer
@Override
public void setDataSource(DataSource dataSource)
// override to do not set datasource even if a datasource exist.
// initialize will use a Map based JobRepository (instead of database)
Inicializará JobRepository y JobExplorer con una implementación basada en un mapa de memoria. https://github.com/spring-projects/spring-batch/blob/342d27bc1ed83312bdcd9c0cb30510f4c469e47d/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/DefaultBatchConfigurer.java#L84
y también puede usar su fuente de datos de producción, incluso si se configura automáticamente con Spring Boot.
Quiero ejecutarlo sin ninguna persistencia de base de datos.
Puedes usar MapJobRepositoryFactoryBean
y ResourcelessTransactionManager
configuración de muestra:
Para Spring 4.X, la configuración basada en anotaciones sería la siguiente:
@Bean
public PlatformTransactionManager getTransactionManager()
return new ResourcelessTransactionManager();
@Bean
public JobRepository getJobRepo()
return new MapJobRepositoryFactoryBean(getTransactionManager()).getObject();
Después de ajustar la respuesta de @Braj, mi configuración de trabajo se ve de la siguiente manera:
@Bean
public ResourcelessTransactionManager transactionManager()
return new ResourcelessTransactionManager();
@Bean
public JobRepository jobRepository(ResourcelessTransactionManager transactionManager) throws Exception
MapJobRepositoryFactoryBean mapJobRepositoryFactoryBean = new MapJobRepositoryFactoryBean(transactionManager);
mapJobRepositoryFactoryBean.setTransactionManager(transactionManager);
return mapJobRepositoryFactoryBean.getObject();
@Bean
public SimpleJobLauncher jobLauncher(JobRepository jobRepository)
SimpleJobLauncher simpleJobLauncher = new SimpleJobLauncher();
simpleJobLauncher.setJobRepository(jobRepository);
return simpleJobLauncher;
Valoraciones y reseñas
Tienes la opción de confirmar nuestra tarea mostrando un comentario y puntuándolo te damos las gracias.