关于jdbcUrl is required with driverClassName的新解
我看所有关于这个问题的博文,内容都是一致的。都是说,配置多数据源时,需要把url换成jdbc-url,driverClassName换成driver-class-name而且还都会配上一段官方的解释:官方文档的解释是:因为连接池的实际类型没有被公开,所以在您的自定义数据源的元数据中没有生成密钥,而且在IDE中没有完成(因为DataSource接口没有暴露属性)。另外,如果您碰巧在类路径上有Hika
我看所有关于这个问题的博文,内容都是一致的。
都是说,配置多数据源时,需要把url换成jdbc-url,driverClassName换成driver-class-name
而且还都会配上一段官方的解释:
官方文档的解释是:
因为连接池的实际类型没有被公开,所以在您的自定义数据源的元数据中没有生成密钥,而且在IDE中没有完成(因为DataSource接口没有暴露属性)。另外,如果您碰巧在类路径上有Hikari,那么这个基本设置就不起作用了,因为Hikari没有url属性(但是确实有一个jdbcUrl属性)。在这种情况下,您必须重写您的配置如下:
说实话,我没看懂这段官方解释。
除了这个,你有没有想过还存在一个问题:
你的poolName写错了!!!!
jdbcUrl is required with driverClassName的报错出现在HikariConfig.java的validate方法内,第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。。。
如果你说,怎么可能会犯这种错呐?请不要怀疑,任何简单的错误都是有可能存在的,这篇博文就是因为我同事把这里写错了!!!!!!!!!
更多推荐
所有评论(0)