spring boot项目启动  

nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]

报错如下:

2021-06-02 23:10:16.048  INFO 4672 --- [           main] io.searchbox.client.JestClientFactory    : Idle connection reaping disabled...
2021-06-02 23:10:16.280  WARN 4672 --- [           main] onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
2021-06-02 23:10:16.295  INFO 4672 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-06-02 23:10:16.299 ERROR 4672 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
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).


Process finished with exit code 1
 

 

报错信息说明的很详细:就是在项目启动的时候在 resource目录下没有加载到配置信息;

解决方法一:

如果项目只是想简单的启动运行,不进行数据库操作可以在 启动类上做如下处理便可解决。

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})

解决方法二:

如果对数据库操作有要求的话在application文件中加入配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: 数据库用户名
    password: 数据库密码
    # 如果在pom 文件中没有依赖数据库连接这个会报红,加入即可。但是在启动后后台打印日志会报红
#《Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is #`com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual #loading of the driver class is generally unnecessary.》
# 把驱动名称:com.mysql.jdbc.Driver 换成 com.mysql.cj.jdbc.Driver 即可
    driver-class-name: com.mysql.jdbc.Driver
 
 
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: 数据库用户名
    password: 数据库密码
    driver-class-name: com.mysql.cj.jdbc.Driver
  • yml或者properties文件没有被扫描到,需要在pom文件中<build></build>添加如下.来保证文件都能正常被扫描到并且加载成功.
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.yml</include>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.yml</include>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>
 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐