最近在测试相关业务时,发现项目启动报错,解决了,在此分享一下经验。
模块启动不起来报错信息如下:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
。。。。。。
之前也遇到过类似的报错说是禁用掉springboot的数据源自动配置,在启动类注解上添加排除数据源自动配置的参数即可,如下所示:
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})//排除数据源的自动配置
如果兄弟们添加了如上所示的参数解决了问题,出门右转就行了。
没解决兄弟们可能日志提示Not Found xxxDao,这个时候明智的兄弟们会想到是Dao没有扫描到,所以可以在主启动类上添加如下注解:
@MapperScan(value = "com.xxx.xxx.dao")
如果正常解决了当然万事大吉,没解决也不要灰心丧气,继续fighting,往下看。
添加了排除数据源的自动配置和MapperScan扫描Mapper注解可能还会产生如下报错,如下所示:
Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
则应该是idea没有读取到配置文件,这个时候修改pom文件中的配置即可,点开pom文件,将pom文件中的标签对下面的配置直接全部替换成如下的build配置即可,然后别忘了执行maven的clean,记得clean完再update一下就行了。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
<!--将mapper文件打包进去-->
<resources>
<resource>
<!--指定根目录 到源文件夹 一般如下-->
<directory>src/main/java</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.yaml</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
<resource> <!--指定根目录 到源文件夹 一般如下-->
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.yaml</include>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
如果这篇文章帮助你解决bug了,兄弟们,记得帮我点个赞,谢谢!!!