Я хотел сохранить метаданные Spring Spring, связанные с заданиями / этапами, вместо использования MapJobRepository, поскольку это не рекомендуется для производственного использования.
Я расширил DefaultBatchConfigurer и переопределил методы для использования My Primary DataSource и Transaction Manager. с помощью JobRepositoryFactoryBean.
Также у меня есть зарегистрированный компонент SimpleJobLauncher для использования собственного репозитория заданий, для которого я использовал приведенный ниже код
@Bean
SimpleJobLauncher simpleJobLauncher() throws Exception {
SimpleJobLauncher simpleJobLauncher= new SimpleJobLauncher();
simpleJobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
simpleJobLauncher.setJobRepository(customRepository());
return simpleJobLauncher;
}
@Bean
public JobRepository customRepository() throws Exception {
JobRepositoryFactoryBean jobRepositoryFactoryBean = new JobRepositoryFactoryBean();
jobRepositoryFactoryBean.setDataSource(myPrimaryDataSource);
jobRepositoryFactoryBean.setTransactionManager(myTransactionManager);
jobRepositoryFactoryBean.setDatabaseType("MYSQL");
jobRepositoryFactoryBean.setTablePrefix("BATCH_");
jobRepositoryFactoryBean.setMaxVarCharLength(1000);
return jobRepositoryFactoryBean.getObject();
}
При запуске задания я сталкиваюсь с приведенным ниже исключением.
java.lang.NullpointerException:null
at org.springframework.batch.core.repository.dao.MapJobExecutionDao:synchronizeStatus(MapJobExecutionDao.java 161)
Пожалуйста, дайте мне знать, где именно моя конфигурация неверна.