最近在测试相关业务时,发现项目启动报错,解决了,在此分享一下经验。

模块启动不起来报错信息如下

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了,兄弟们,记得帮我点个赞,谢谢!!!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐