我看所有关于这个问题的博文,内容都是一致的。
都是说,配置多数据源时,需要把url换成jdbc-url,driverClassName换成driver-class-name

而且还都会配上一段官方的解释:

官方文档的解释是:
因为连接池的实际类型没有被公开,所以在您的自定义数据源的元数据中没有生成密钥,而且在IDE中没有完成(因为DataSource接口没有暴露属性)。另外,如果您碰巧在类路径上有Hikari,那么这个基本设置就不起作用了,因为Hikari没有url属性(但是确实有一个jdbcUrl属性)。在这种情况下,您必须重写您的配置如下:

说实话,我没看懂这段官方解释。

除了这个,你有没有想过还存在一个问题:
你的poolName写错了!!!!

jdbcUrl is required with driverClassName的报错出现在HikariConfig.javavalidate方法内,第970行。

那么,咱先来看下这个地方:(不知道为啥,CSDN代码块颜色这么丑,怎么改配色啊???)

else if (jdbcUrl != null || dataSourceJndiName != null) {
    // ok
}
else if (driverClassName != null) {
    LOGGER.error("{} - jdbcUrl is required with driverClassName.", poolName);
    throw new IllegalArgumentException("jdbcUrl is required with driverClassName.");
}

如果jdbcUrl不为null,直接就ok了,就不会执行下一个else if了,那么,为啥jdbcUrl是个null呐?

你如果这么写,他去遍历poolName的时候就是null。。。

如果你说,怎么可能会犯这种错呐?请不要怀疑,任何简单的错误都是有可能存在的,这篇博文就是因为我同事把这里写错了!!!!!!!!! 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐