SpringBoot: 1.4.1 Druid: 1.0.25
如题配置,会出现UnsupportedOperationException。 发现是DruidAbstractDataSource里setDriverClassName时 inited已经是true, 使用dbcp不存在此问题,不知是我配置问题,还是Druid兼容问题
原提问者GitHub用户antergone
根据您提供的信息,很可能是因为在使用Druid连接池时,尝试设置了driverClassName属性,但是Druid并不支持在运行时动态修改driverClassName属性。这个问题在Druid的1.0.25版本中可能存在,因为该版本中的DruidAbstractDataSource类确实在inited为true时禁止了driverClassName的修改,这也是您观察到的现象。
如果您需要使用Druid连接池,并且需要在运行时动态修改driverClassName属性,可以考虑升级Druid的版本到最新版,或者使用其他连接池实现。Druid的最新版本已经解决了这个问题,并且支持在运行时动态修改driverClassName属性。
另外,如果您确实需要在使用Druid连接池时设置driverClassName属性,可以在初始化DataSource时设置该属性,并且确保在初始化之前设置。
你遇到的问题可能是由于Druid与Spring Boot 1.4.1的版本不兼容引起的。通常,Druid 1.0.25与较新的Spring Boot版本一起使用时没有问题,但与旧版本可能存在一些兼容性问题。
一个可能的解决方案是升级你的Spring Boot版本到最新的可用版本,这样可能可以解决你遇到的问题。你可以尝试使用Spring Boot 2.x版本,因为这些版本对Druid的集成更好。
另外,你也可以尝试将Druid升级到最新版本,看看是否有任何改进或修复与旧版本不兼容的问题。
如果升级版本仍然无法解决问题,你可以尝试使用其他连接池,如HikariCP或Tomcat JDBC连接池,这些连接池也与Spring Boot集成良好,并且在性能方面表现出色。
另外,请确保你的配置正确无误。确保你在配置文件中正确设置了数据库驱动程序的类名,并且在引入Druid依赖时没有遗漏任何必要的配置。
如果问题仍然存在,请提供更多详细的错误信息和相关的配置,以便我能够更好地帮助你解决问题。
连接池初始化之后不允许再修改driverClassName,不过我可以补上检测如果相等则忽略
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。