org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“ batchConfiguration”的bean时出错

时间:2018-08-15 14:14:48

标签: spring maven spring-boot

我已经创建了一个Maven模块,用于在我们的项目中实现Spring Batch。我的目的是将数据从数据库表导出到CSV文件(基于另一个Maven模块中实现的存储库)。

在Spring Boot主类中,我具有以下内容:

@SpringBootApplication(scanBasePackages = {"com.test"})
@ComponentScan({"com.test"})
public class MainBatchApplication {
    public static void main(String args []){
        SpringApplication.run(MainBatchApplication.class,args);
    }
}

软件包com.test是我们要用于从数据库获取所有用户的已实现UserRepository的路径。

一旦我将UserRepository注入我的Spring Batch创建的maven模块中,然后运行spring boot应用程序。我收到以下错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchConfiguration': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.test.repositories.UserRepository.getFilteredByMonth(java.lang.String,java.util.Date,java.util.Date)!

com.test作为依赖项(pom.xml)包含在我的批处理maven模块中的模块

1 个答案:

答案 0 :(得分:0)

您需要使用以下命令在项目中的某个位置定义配置:

@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
 ....
}

然后,您将可以在此处为编写者注入您的存储库。

它需要更多的bean定义。有关示例,请参见:https://spring.io/guides/gs/batch-processing/