开发者社区> 问答> 正文

SpringBoot + Druid + Spring Cloud Hystrix出现Unsuppo

SpringBoot: 1.4.1 Druid: 1.0.25

如题配置,会出现UnsupportedOperationException。 发现是DruidAbstractDataSource里setDriverClassName时 inited已经是true, 使用dbcp不存在此问题,不知是我配置问题,还是Druid兼容问题

原提问者GitHub用户antergone

展开
收起
山海行 2023-07-05 21:30:45 47 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    根据您提供的信息,很可能是因为在使用Druid连接池时,尝试设置了driverClassName属性,但是Druid并不支持在运行时动态修改driverClassName属性。这个问题在Druid的1.0.25版本中可能存在,因为该版本中的DruidAbstractDataSource类确实在inited为true时禁止了driverClassName的修改,这也是您观察到的现象。
    如果您需要使用Druid连接池,并且需要在运行时动态修改driverClassName属性,可以考虑升级Druid的版本到最新版,或者使用其他连接池实现。Druid的最新版本已经解决了这个问题,并且支持在运行时动态修改driverClassName属性。

    另外,如果您确实需要在使用Druid连接池时设置driverClassName属性,可以在初始化DataSource时设置该属性,并且确保在初始化之前设置。

    2023-07-30 09:36:40
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    你遇到的问题可能是由于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依赖时没有遗漏任何必要的配置。

    如果问题仍然存在,请提供更多详细的错误信息和相关的配置,以便我能够更好地帮助你解决问题。

    2023-07-11 19:15:19
    赞同 展开评论 打赏
  • 连接池初始化之后不允许再修改driverClassName,不过我可以补上检测如果相等则忽略

    原回答者GitHub用户wenshao

    2023-07-06 12:14:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多