预计至少有 1 个 bean 有资格作为 autowire 候选者

Posted

技术标签:

【中文标题】预计至少有 1 个 bean 有资格作为 autowire 候选者【英文标题】:expected at least 1 bean which qualifies as autowire candidate 【发布时间】:2021-01-30 06:04:34 【问题描述】:

由于以下错误而无法运行 springboot 应用程序(它说,“考虑在您的配置中定义一个类型为 'com.example.demo.DAOinter' 的 bean”。这里缺少什么) :-

请查看用于 Repository 注释的 Service 类和 DAOInter 接口的详细信息:-

    ServiceBusinessLayer 类

    DAOinter 类

当 DAOinter 接口中包含存储库注释时,为什么 autowired 在 ServiceBusinessLayer 类中不起作用?

分享包详情和SpringBootApplication类

【问题讨论】:

请分享SpringBootApplication类的代码 我不记得确切的错误,但可能是因为文件夹结构。如果您将具有 main 方法的类放在另一个文件夹/包中,而不是应该用作 bean 的类的父文件夹/包,应用程序将不会扫描所有类。然后应用程序不知道所有的 bean。考虑一下,还提供您的文件夹结构,我们可以看看这个。 确保DAOiniter在同一个包或者@SpringBootApplication注解的类的子包中。这是必要的,因为组件扫描只发生在同一个包和子包中。 也许,this answer 会有所帮助。 请将代码和日志共享为代码格式的文本,而不是图像。 【参考方案1】:

所以,问题是我的 pom.xml 中缺少 mysql 连接器依赖项和 MySQL 版本,因此无法连接到 db,从而导致上述错误。

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>

只要我包含了这个依赖,它就不再抛出上述错误了。

另外,我用下面提到的细节修改了 application.properties:-

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

【讨论】:

以上是关于预计至少有 1 个 bean 有资格作为 autowire 候选者的主要内容,如果未能解决你的问题,请参考以下文章

未找到依赖项:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:

NoSuchBeanDefinitionException 预期至少有 1 个 bean 有资格作为此依赖项的自动装配候选者

引诱框架:预计至少有 1 个参数,得到 0

引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者

Spring,Bean,constructor-arg as String

没有为依赖找到类型 [org.hibernate.SessionFactory] ​​的匹配 bean