解决 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource.
这里的忘记改了,maven并不会把它识别为一个可启动的项目。启动时的端口是8080,并不是我配置的9997,说明我的配置文件根本没有被识别到,那为什么我的配置会无法识别呢!可以看到,此时我项目的打包方式为 pom,这是因为我本来打算把这个项目拆分为多个模块,父项目作为一个空项目使用。解决方式很简单,把打包方式删掉即可,使用默认的打包方式,也就是jar,就可以正确地读取yml了。只引用了mybati
·
问题描述
今天搭建了一个简单的项目
pom如图:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!-- 关联查询 -->
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>${mybatis-plus-join.version}</version>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
</dependency>
</dependencies>
application.yml如图
只引用了mybatis相关的一些包,和springboot-web,可以说是非常简单的项目了。
结果启动的时候总是报错,提示我没有数据库url:
***************************
APPLICATION FAILED TO START
***************************
Description:
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
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
Disconnected from the target VM, address: '127.0.0.1:52340', transport: 'socket'
Process finished with exit code 1
分析问题
可以看到yml中明明配置了数据库。然后我就注意到一点:
启动时的端口是8080,并不是我配置的9997,说明我的配置文件根本没有被识别到,那为什么我的配置会无法识别呢!?
后来发现是因为maven的打包方式<packaging>有问题
可以看到,此时我项目的打包方式为 pom,这是因为我本来打算把这个项目拆分为多个模块,父项目作为一个空项目使用。
后来觉得项目很简单,不需要分模块,就想把父项目直接作为入口。这里的<packaging>忘记改了,maven并不会把它识别为一个可启动的项目。才会读取不到配置文件。
解决问题
解决方式很简单,把打包方式删掉即可,使用默认的打包方式,也就是jar,就可以正确地读取yml了。
启动成功!!!
更多推荐
已为社区贡献1条内容
所有评论(0)