问题描述

Spring Boot项目启动时报错:Cannot determine embedded database driver class for database type NONE

报错原因

这是因为spring boot默认会加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类,DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean。因为工程中没有关于dataSource相关的配置信息,所以当spring创建dataSource bean因缺少相关的信息就会报错

解决办法

解决办法有两种:一种是修改启动类注解,另一种是配置数据源

修改注解

在启动类中修改注解@SpringBootApplication为:

1
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

配置数据源

在application.yml中配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 数据源配置
spring:
application:
name: microservice-student
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_springcloud?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
jpa:
hibernate:
ddl-auto: update
show-sql: true

PS.

来源:springboot常见问题之启动报错Cannot determine embedded database