springboot启动的时候报错:Error creating bean with name ‘********‘

今天写了一个自定义sql查询,在Test文件夹测试的时候没有问题,但是但启动项目的时候报错,报错图片如下:

检查了很多地方,发现不是mapperscan,或者是配置档命名空间的问题,而是pom.xml里面的一个低级错误

这段代码在springboot的test文件夹里面编写,因为使用的是idea,当注入dao层“TravelGroupDao”的时候,为了方便我使用idea自动生成pom.xml里的依赖:

重点就在这里,在test中的启动器自动导入之后,依赖的<scope>是test:

 我们知道:

<scope>元素用于指定依赖项的范围。在<dependency>元素中,<scope>可以有以下几个值:

  1. compile:这是默认的范围。当依赖项的<scope>设置为compile时,表示该依赖项在编译、测试和运行时都可用。这意味着它会被包含在项目的编译路径中,并且可以在编译、测试和运行代码时被访问和使用。

  2. provided:当依赖项的<scope>设置为provided时,表示该依赖项在编译和测试时可用,但在项目部署和运行时由目标环境(如应用服务器)提供。这意味着编译和测试代码可以使用该依赖项,但在部署到目标环境时,不需要打包该依赖项,因为目标环境已经提供了它。

  3. runtime:当依赖项的<scope>设置为runtime时,表示该依赖项在运行时可用,即在项目运行时才需要使用。这意味着它不会被包含在项目的编译路径中,只有在运行时才会被加载和使用。

  4. test:当依赖项的<scope>设置为test时,表示该依赖项仅在测试代码中可用,不会被包含在项目的编译路径中,也不会在项目的运行时使用。这通常用于测试框架、工具或其他只在测试过程中需要的库。

所以这就是为什么会出现“Error creating bean”,原因是我使用了test标签,修改成compile之后正常启动,项目运行成功!