启动项目时报Field xxx in xxx required a bean of type 'xxx' that could not be found.这个错的各种情况解决方法!

做项目最烦的就是在写好基础代码后,一去启动项目还不停的报错!
今天就来说一个使用springBoot创建的项目在启动时报的错:

我的报错的问题
Description:

Field testDao in com.thomaschen.dailyspokenglish.service.testService required a bean of type 'com.thomaschen.dailyspokenglish.dao.testDao' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.thomaschen.dailyspokenglish.dao.testDao' in your configuration.
下面来分析一下这个报错:

这个错误显示是缺少一个dao类型的bean,也就是dao包没有被扫描到而使代码无法正常执行。
关于这个问题的解决,我去百度查找了很多,最后得出下面几种方法:

1、包的位置

一般而言,当项目启动时,只有@SpringBootApplication 所在的包被扫描,所以要把其他包创建在DailyspokenglishApplication.java类的同一层包里,这样就可以扫描到所有你创建的包。
效果如下:
包结构效果图

2、注解

在springBoot里注解起到了很大的作用,可以省下一大堆的麻烦配置,让开发者是真专注于开发。因此注解就起到了必须的作用,而每一层的注解也不同。
Dao层注解
Service层注解
contorller层注解
注:红框内的就是自动注入的注解。

3、手动配置Mybatis

在启动类上加注释:@MapperScan(“dao所在的包路径” ),表示扫描**.dao包下的所有xxDao。
配置mybatis,手动扫描注入
其实这个手动注入实现的是和在第2个方法里在dao层写上@Mapper注解要实现的都是一样的:为了包被扫描到。

再来说说我的错误的解决方法:因为我的包什么注解都弄好,可是还报这个错,没办法只能手动在启动类配置@MapperScan("…")。
最后也没搞定在不手动配置时dao包内有些能被扫描到,有些不可以,所以只能手动配置了。

以上三种方法希望能帮助到你,你还有什么解决方法或有疑问的都欢迎留言,谢谢!

在Spring框架中,当你在配置文件中定义了一个bean的类型为'com.inspur.dao.AlarmDao'时,可能会出现以下误提示:"Consider defining a bean of type 'com.inspur.dao.AlarmDao' in your configuration"。这个误提示通常是由于Spring容器无法找到或创建对应的bean实例所导致的。 要解决这个问题,你可以按照以下步骤进行操作: 1. 确保你的配置文件中已经正确定义了'com.inspur.dao.AlarmDao'的bean。可以检查一下配置文件中是否包含了类似以下的配置代码: ```xml <bean id="alarmDao" class="com.inspur.dao.AlarmDao" /> ``` 2. 确保你的配置文件中已经正确引入了相关的命名空间或模块。可以检查一下配置文件的开头是否包含了类似以下的命名空间声明: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> ``` 3. 确保你的项目中已经正确引入了相关的依赖库或模块。可以检查一下项目的依赖配置文件(如pom.xml)或构建工具(如Gradle)中是否包含了对应的依赖项。 如果以上步骤都没有解决问题,你可以进一步检查以下可能的原因: - 类路径问题:确保'com.inspur.dao.AlarmDao'类所在的包已经在类路径中,并且可以被正确加载。 - 类命名问题:确保'com.inspur.dao.AlarmDao'类的名称没有拼写误,并且与配置文件中的bean定义一致。 希望以上信息对你有帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值