有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在spring Boot 2中为spring批处理配置数据源以进行测试

我正在玩一个简单的批处理,尽管有H2依赖关系,但数据源配置有问题

控制台的输出:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

我的类在字符串上操作并使用:

org.springframework.batch.item.ItemProcessor;
org.springframework.batch.item.ItemReader;
org.springframework.batch.item.ItemWriter;

主要

@SpringBootApplication   
public class Boo2BatchApplication {

    public static void main(String[] args) {
        SpringApplication.run(Boo2BatchApplication.class, args);
    }
}

配置:

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();
    }

}

共 (1) 个答案

  1. # 1 楼答案

    当H2这样的数据库位于路径上时,默认情况下会配置数据源(如@Alireza Khajavi所说)。不需要额外的配置。我的类路径混乱,pom文件的依赖项在启动期间不可用

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>