UnsatisfiedDependencyException: Error creating bean with name

报错信息:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.xubo.mybatisplus.MyBatisPlusTest': Unsatisfied dependency expressed through field 'userMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.xubo.mybatisplus.mapper.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

问题原因:

这是因为启动类上没有加mapperscan;扫描不到对应的类。
在启动类上加上 @MapperScan(“com…*.dao”);问题迎刃而解!

我自己实际问题是加上了,但是我写的是具体类的路径,带类名的,这样不行,必须写包名.改成包名就启动成功查询数据了.

@MapperScan作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
添加位置:是在Springboot启动类上面添加

下面这段这个是搜索的时候看到的,不知道正确性.
springboot启动类位置,如果没有错的话,应该是可以直接扫描到对应注解的,所以我在网上查遍了各种方法,历经两个多小时,我无意之中研究出来,springboot启动类的位置除了第一原则,只扫描所在的同级目录和子目录的注解之外,同时启动类距离目录java,至少要隔开两层的包

image-20221201211430383

posted @ 2022-12-01 21:17  哩个啷个波  阅读(617)  评论(0编辑  收藏  举报