Spring 教程

Spring 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/spring_framework-boot-datasoure-bean-error.html

spring cloud 或 spring boot 启动报错 Error creating bean with name 'org.springframework.boot.autoconfigure.jdbc.DataSourceJmxConfiguration$Hikari' 问题原因与解决方法

Spring 笔记 Spring 笔记


spring cloud 或 spring boot 启动报错 Error creating bean with name 'org.springframework.boot.autoconfigure.jdbc.DataSourceJmxConfiguration$Hikari'

报错信息

启动报错信息,应该类似如下:

ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.jdbc.DataSourceJmxConfiguration$Hikari': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.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

报错原因

spring boot 会默认加载 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 这个类;DataSourceAutoConfiguration 类使用了 @Configuration 注解向 spring 容器注入 DataSource bean;由于项目中没有 datasource 的配置导致 bean 实例化错误导致。

解决方案

在启动类上增加如下排除 DataSourceAutoConfiguration 的注解:

@SpringCloudApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class MainApp {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class, args);
    }
}

 

一般如我们在 pycharm 本地运行 pyspark 连接 mysql 时,可能会报 java.lang.ClassNotFoundExc ...
在 mybatis 开发中,若遇到 org.apache.ibatis.binding.BindingException: Invalid ...
在 spring cloud 或 spring boot 项目中,服务依赖 zookeeper,又通过 apache curator 客户端 ...
基于年粒度,使用 java 8 的 time api 进行时间跨度计算时,出现报错 java.time.temporal.Unsupport ...
使用 pandas,调用 pd.read_csv 函数读取 csv 文件时,若读取基于分隔符的内容不对时,报类似 pandas.errors ...