스프링 - 배치와 함께 스프링 부트를 사용하고 있습니다. 내 application.properties에 데이터 소스 구성이 있지만 스프링 배치로 테이블을 만들지는 않습니다. 그것을 위해 내가스프링 부트 (스프링 배치) 구성은 데이터베이스의 자동 생성을 비활성화합니다.
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Bean
public Job myJob() {
return jobBuilderFactory.get("myJob").incrementer(new RunIdIncrementer())
.listener(listener()).flow(step2()).end().build();
}
@Bean
public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor(final JobRegistry jobRegistry) {
JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor();
jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry);
return jobRegistryBeanPostProcessor;
}
@Bean
public Step step2() {
LOGGER.info("step2");
return stepBuilderFactory.get("step2").tasklet(new PurchaseStatusBatch()).build();
}
@Bean
public JobOperator jobOperator() throws Exception {
SimpleJobOperator jobOperator = new SimpleJobOperator();
jobOperator.setJobExplorer(jobExplorer());
jobOperator.setJobLauncher(jobLauncher());
jobOperator.setJobRegistry(jobRegistry());
jobOperator.setJobRepository(getJobRepo());
return jobOperator;
}
@Bean
public JobRegistry jobRegistry() {
return new MapJobRegistry();
}
@Bean
public JobExplorer jobExplorer() throws Exception {
MapJobExplorerFactoryBean factoryExplorer = new MapJobExplorerFactoryBean(
new MapJobRepositoryFactoryBean(getTransactionManager()));
factoryExplorer.afterPropertiesSet();
return factoryExplorer.getObject();
}
@Bean
public JobLauncher jobLauncher() throws Exception {
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
jobLauncher.setJobRepository(getJobRepo());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
@Bean
public PlatformTransactionManager getTransactionManager() {
return new ResourcelessTransactionManager();
}
@Bean
public JobRepository getJobRepo() throws Exception {
return new MapJobRepositoryFactoryBean(getTransactionManager()).getObject();
}
}
내가 응용 프로그램의 처음 실행시 데이터베이스 테이블
의 자동 생성을 해제 spring.batch.initializer.enabled=false
을 사용하여 다음과 같은 구성을 사용할 수 있도록 내 데이터베이스는 모든 것이 잘 작동하지만 난 lanch 할 때 내 일을 내가 MySQLSyntaxErrorException 얻을 :
는 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 표는 테이블의 자동 생성을 비활성화해서 'BATCH_JOB_INSTANCE가'