最近项目升级springboot 2.0.4版本时遇到启动报错,坑了我整整2天,网上也的解决方法也都不行,最后发现是配置文件的问题,希望能帮到跟我遇到同样问题的伙伴:
错误代码:
***************************
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:59265', transport: 'socket'
Process finished with exit code 0
常规解决方法:
1.由于新建的项目没有配置数据库连接启动报错,可以通过取消自动数据源自动配置来解决
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
@SpringBootApplication
2.去配置文件中配置数据库连接参数
3.在springboot 2.0.4版本中(之前用的1.5.4版本没问题,2.0以后好像都有这个问题)application.yml文件中识别不到datasource的配置,这里将application.yml修改为application.properties文件后可以正常解决,但是整个配置文件都要修改,最好的办法还是暂时先不要升级,等后面这个BUG修复后再升级到新版本。
原.yml配置:
spring:
datasource: # 数据库配置
type: com.zaxxer.hikari.util.DriverDataSource
hikari:
# 指定连接数据库的超时时间
login-timeout: 10000
# 指定连接池最大的连接数,包括使用中的和空闲的连接
maximum-pool-size: 30
# 指定必须保持连接的最小值
minimum-idle: 1
jdbc-url: 数据库链接地址
username: 用户名
password: 密码
driver-class-name: oracle.jdbc.driver.OracleDriver
更改为.properties配置文件后
spring.datasource.url=数据库链接地址
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.hikari.login-timeout=1000
spring.datasource.hikari.maximum-pool-size=30