我有下一个 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中的org.springframework.batch.core.repository.JobRepository .core.configuration.SanmpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 14f7a80d.jobRepository()位于org.springframework.batch.core的org.springframework.batch.core.configuration.annotation.AbstractBatchConfiguration.jobBuilders(AbstractBatchConfiguration.java:58) . configuration.anmpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 14f7a80d.CGLIB $ jobBuilders $ 6()at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 14f7a80d $$ FastClassBySpringCGLIB $$ c6b630d7.invoke()at org .springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)at org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.ja va:312)org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 14f7a80d.jobBuilders()at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:62)在org.springframework.beans.factory.support.SimpleInstantiationStrategy的java.lang.reflect.Method.invoke(Method.java:497)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) . 实例(SimpleInstantiationStrategy.java:162)
在pom.xml中我有下一个依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
提前致谢 .
1 回答
需要重命名JobRepository实例,否则Spring上下文将找到不正确的自动装配候选者 .