开发者社区> 问答> 正文

com.alibaba.druid.proxy.DruidDriver本意是否是想设计成单例?

看源码是发现一个小小的问题,com.alibaba.druid.proxy.DruidDriver这个类本意是否是想设计成单线程单例?但是构造函数却又是public

不知是我理解不到位还是代码的一点点小小瑕疵?

版本 V1.0.27

原提问者GitHub用户34benma

展开
收起
山海行 2023-07-05 21:10:27 62 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    com.alibaba.druid.proxy.DruidDriver并不是一个单例模式。它是一个JDBC驱动程序,负责管理数据库连接池和数据库连接,它与JDBC API一起被用于连接到数据库和执行SQL查询。

    在Druid中,com.alibaba.druid.proxy.DruidDriver类通常被用于创建数据库连接,而不是作为单例对象进行使用。每次需要创建数据库连接时,应用程序都会使用DriverManager类加载com.alibaba.druid.proxy.DruidDriver并创建一个新的数据库连接。

    当应用程序使用DriverManager类加载com.alibaba.druid.proxy.DruidDriver时,JVM会自动创建一个DruidDriver对象。因此,com.alibaba.druid.proxy.DruidDriver类不需要被设计成单例,因为JVM会自动维护一个实例。

    2023-07-30 10:07:02
    赞同 展开评论 打赏
  • 内部使用单例,但会有很多场景需要通过classname反射构造的,所有构造函数public。

    原回答者GitHub用户wenshao

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载