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

Posted

技术标签:

【中文标题】org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“batchConfiguration”的bean时出错【英文标题】:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchConfiguration' 【发布时间】:2019-01-22 10:22:55 【问题描述】:

我创建了一个 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 的路径,我想用它来从数据库中获取所有用户。

一旦我在我的 Spring Batch 创建的 maven 模块中注入了 UserRepository,并且一旦我运行了 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 所在的模块(如果包含在我的批处理 maven 模块中作为依赖项 (pom.xml))

【问题讨论】:

也分享你的 Repository 类 @NicholasK 感谢您的回答,我看到存储库类很好,因为我在服务中使用了它 您需要发布您的存储库,尤其是您的 getFilteredByMonth 方法。但很可能您的查询不是合法的 JQL,如下所示:***.com/questions/44647630/…,您可能需要将您的查询标记为原生查询。 @RobertMoskal 我试图评论方法 getFiltredByMonth 并且我在另一个我没有使用但在我使用的存储库所在的包中的另一个存储库中遇到了另一个错误。配置不配吗?我的 componentScan 注释正确吗? 您必须发布存储库代码。 【参考方案1】:

您需要在项目中的某处定义配置:

@Configuration
@EnableBatchProcessing
public class BatchConfiguration 
 ....

然后您就可以在此处为作者注入您的存储库。

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

【讨论】:

以上是关于org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“batchConfiguration”的bean时出错的主要内容,如果未能解决你的问题,请参考以下文章

REST API:org.springframework.beans.factory.UnsatisfiedDependencyException:

Spring security-org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.sec

org.springframework.beans.factory.UnsatisfiedDependencyException:

没有实现 [org.springframework.beans.factory.xml.NamespaceHandler] 接口

Spring Boot 错误 org.springframework.beans.factory.UnsatisfiedDependencyException

org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 时出错