Java Spring批处理配置异常

Java Spring批处理配置异常,java,spring,spring-batch,Java,Spring,Spring Batch,我有下一个spring批处理配置类: @Configuration @EnableBatchProcessing public class BatchJobConfiguration { @Autowired private JobBuilderFactory jobBuilderFactory; @Autowired private StepBuilderFactory stepBuilderFactory; @Bean public St

我有下一个spring批处理配置类:

@Configuration
@EnableBatchProcessing
public class BatchJobConfiguration {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .tasklet(new Tasklet() {
                    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
                        return null;
                    }
                })
                .build();
    }

    @Bean
    public Job job(Step step1) throws Exception {
        return jobBuilderFactory.get("job1")
                .incrementer(new RunIdIncrementer())
                .start(step1)
                .build();
    }
}
启动应用程序时,我会收到下一个异常:

原因:java.lang.ClassCastException: org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean$$EnhancerBySpringCGLIB$$65a19538 不能投靠 org.springframework.batch.core.repository.JobRepository位于 org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d.jobRepository() 在 org.springframework.batch.core.configuration.annotation.AbstractBatchConfiguration.jobBuilders(AbstractBatchConfiguration.java:58) 在 org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d.CGLIB$jobBuilders$6() 在 org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d$$FastClassBySpringCGLIB$$c6b630d7.invoke() 在 org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 在 org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312) 在 org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d.jobBuilders() 位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:497) org.springframework.beans.factory.support.SimpleInstallationStrategy.instantiate(SimpleInstallationStrategy.java:162)

在pom.xml中,我有下一个依赖项:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-batch</artifactId>
</dependency>

org.springframework.boot
弹簧靴起动器批次

提前感谢。

需要重命名JobRepository实例,否则Spring上下文将发现不正确的自动连接候选对象。

您的代码中是否有任何JpaRepositoryFactoryBean变量?如果你有,请发那行。不,我没有这样的变量。对不起,我没注意。我发现JobRepository接口扩展了JpaRepository(SpringData)。所以我重新命名了JobRepository,一切都变好了。请回答我的问题,我将关闭我的帖子。我希望你能找到一些东西,否则这将是一个巨大的迷雾很长一段时间这太神奇了。我有类似的问题,我也可以通过重命名JobRepository来解决。谢谢大家。@GergelyBasco如果您能详细说明如何重命名
JobRepository
实例就好了。。