Reputation: 404
I am playing with a simple batch processing and I have a problem with a DataSource configuration despite having an H2 dependency.
Output from the console:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
My classes operates on Strings and use:
org.springframework.batch.item.ItemProcessor;
org.springframework.batch.item.ItemReader;
org.springframework.batch.item.ItemWriter;
Main
@SpringBootApplication
public class Boo2BatchApplication {
public static void main(String[] args) {
SpringApplication.run(Boo2BatchApplication.class, args);
}
}
Config:
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableBatchProcessing
public class BatchConfig {
@Bean
public Step recordsStep(StepBuilderFactory stepBuilderFactory, RecordReader recordReader,
RecordProcessor<String> recordProcessor, RecordWriter recordWriter) {
return stepBuilderFactory.get("recordsSetp").<String, String>chunk(4).reader(recordReader)
.processor(recordProcessor).writer(recordWriter).build();
}
@Bean
Job recordsJob(JobBuilderFactory jobBuilderFactory, Step recordsStep) {
return jobBuilderFactory.get("recordsJob").start(recordsStep).build();
}
}
Upvotes: 1
Views: 2410
Reputation: 404
When a Database like H2 is on the path the DataSource is configured by default (as @Alireza Khajavi said). No additional configuration is needed. My classpath was messed up and the dependency from a pom file was not available during startup.
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
Upvotes: 2