在对Spring Boot进行DataSource配置的时候遇到一个错误

Causedby:org.springframework.beans.BeanInstantiationException:Failedtoinstantiate[javax.sql.DataSource]:Factorymethod'testDataSource'threwexception;nestedexceptionisjava.lang.IllegalStateException:NosupportedDataSourcetypefoundatorg.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)~[spring-beans-5.0.8.RELEASE.jar:5.0.8.RELEASE]atorg.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)~[spring-beans-5.0.8.RELEASE.jar:5.0.8.RELEASE]...93commonframesomittedCausedby:java.lang.IllegalStateException:NosupportedDataSourcetypefoundatorg.springframework.boot.jdbc.DataSourceBuilder.getType(DataSourceBuilder.java:146)~[spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]atorg.springframework.boot.jdbc.DataSourceBuilder.build(DataSourceBuilder.java:74)~[spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]atcom.kai.demo.DataSourceConfig.testDataSource(DataSourceConfig.java:37)~[classes/:na]atcom.kai.demo.DataSourceConfig$$EnhancerBySpringCGLIB$$e66334f9.CGLIB$testDataSource$3(<generated>)~[classes/:na]atcom.kai.demo.DataSourceConfig$$EnhancerBySpringCGLIB$$e66334f9$$FastClassBySpringCGLIB$$99581351.invoke(<generated>)~[classes/:na]atorg.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)~[spring-core-5.0.8.RELEASE.jar:5.0.8.RELEASE]atorg.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]atcom.kai.demo.DataSourceConfig$$EnhancerBySpringCGLIB$$e66334f9.testDataSource(<generated>)~[classes/:na]atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)~[na:1.8.0_121]atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)~[na:1.8.0_121]atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)~[na:1.8.0_121]atjava.lang.reflect.Method.invoke(UnknownSource)~[na:1.8.0_121]atorg.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)~[spring-beans-5.0.8.RELEASE.jar:5.0.8.RELEASE]...94commonframesomitted


原因是在使用DataSourceBuilder时需要在classpath里指定以下三个中的任意一个:

1. COMMONS-DBCP

2. TOMCAT-JDBC

3. HIKARICP


于是在pom.xml添加了HiKariCP的依赖

<dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>3.2.0</version></dependency>


错误就没有了


参考地址:https://stackoverflow.com/questions/44635962/error-when-create-datasource