SpringBoot启动报错,无法扫描到这个包,所以注入失败

今天改一个项目,使用的springboot,但是启动的时候报有个mapper无法注入,肯定是扫描不到所以注入失败。

一般在application加上这两个注解,然后在各自的类上加上,@service等注解,使用@autowire就可以完成注入过程。

@SpringBootApplication
@MapperScan("要扫描的包全限定名")

但是我这里这些注解都使用了,没有问题。

错误提示

***************************
APPLICATION FAILED TO START
***************************

Description:

Field menuMapper in com.fast.project.system.service.impl.MenuServiceImpl required a bean of type 'com.fast.project.system.mapper.MenuMapper' that could not be found.


Action:

Consider defining a bean of type 'com.fast.project.system.mapper.MenuMapper' in your configuration.

Disconnected from the target VM, address: '127.0.0.1:9981', transport: 'socket'

Process finished with exit code 0

这是出现的包扫描问题。

目录,最开始是这样放的

SpringBoot启动报错,无法扫描到这个包,所以注入失败_第1张图片然后改成SpringBoot启动报错,无法扫描到这个包,所以注入失败_第2张图片这些要扫描的文件在,启动类的同级目录的下级目录里面,然后提示最开始的报错。

接着改成

SpringBoot启动报错,无法扫描到这个包,所以注入失败_第3张图片把存这些bend类的文件,中间再加一级目录。也就是放到启动类同级目录--》的下级目录--》的下级目录。然后启动成功。

大家一般说把这些类放到启动类同级目录的下级目录就行。这里测试不行,再往下放一级就可以了。

springboot很多情况是约定的,正常情况下@SpringBootApplication @MapperScan("包名")这两个注解正常使用就可以解决问题了。不过如果解决不了,可以试着往下放一级目录,试试是不是可以解决。

你可能感兴趣的:(spring,boot)