创建多数据源配置:
使用SpringBoot创建多数据源的时候启动报错:
No supported DataSource type found
Caused by: java.lang.IllegalStateException: No supported DataSource type found
at org.springframework.util.Assert.state(Assert.java:76) ~[spring-core-5.3.14.jar:5.3.14]
at org.springframework.boot.jdbc.DataSourceBuilder$ReflectionDataSourceProperties.<init>(DataSourceBuilder.java:513) ~[spring-boot-2.6.2.jar:2.6.2]
at org.springframework.boot.jdbc.DataSourceBuilder$DataSourceProperties.forType(DataSourceBuilder.java:316) ~[spring-boot-2.6.2.jar:2.6.2]
at org.springframework.boot.jdbc.DataSourceBuilder.build(DataSourceBuilder.java:170) ~[spring-boot-2.6.2.jar:2.6.2]
at com.springboot.demo.config.DataSourceConfig.primaryDataSource(DataSourceConfig.java:25) ~[classes/:na]
at com.springboot.demo.config.DataSourceConfig$$EnhancerBySpringCGLIB$$57b91d4e.CGLIB$primaryDataSource$1(<generated>) ~[classes/:na]
at com.springboot.demo.config.DataSourceConfig$$EnhancerBySpringCGLIB$$57b91d4e$$FastClassBySpringCGLIB$$23303f8c.invoke(<generated>) ~[classes/:na]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.3.14.jar:5.3.14]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.3.14.jar:5.3.14]
at com.springboot.demo.config.DataSourceConfig$$EnhancerBySpringCGLIB$$57b91d4e.primaryDataSource(<generated>) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_221]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_221]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_221]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_221]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.14.jar:5.3.14]
... 45 common frames omitted
原因:是在使用DataSourceBuilder时需要在classpath里指定以下三个中的任意一个:
1. COMMONS-DBCP
2. TOMCAT-JDBC
3. HIKARICP
解决:添加其中一个依赖即可,例如
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.2.0</version>
</dependency>