dynamic-datasource多数据源报错url not set
-
发生起因
在对一个SpringMVC老项目的部分模块进行SpringBoot迁移用于测试时,使用了dynamic-datasource配置多数据源。因为原SpringMVC老项目存在大量的xml配bean,在SpringBoot中手动配置configuration配置类加载这些bean时,有一个初始化的bean在进行init()方法初始化时,对数据库进行查询,然后就出现了本文的错误:
无法获取JDBC连接,因为url not set
-
寻找解决
在这篇文章中的倒数第二个回答(7.26日的回答)中找的了解决,在原有的xml中存在一个遗留的DriverManagerDataSource的bean注入,将其删除即可:
<bean id="abstractDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" />
-
总结
使用dynamic-datasource配置多数据源时,一定不能有其他的数据源存在,否则就会出现无法获取JDBC连接的情况