预计至少有 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 有资格作为此依赖项的自动装配候选者
引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者