文章更新时间:2023-09-21 14:40
组件简介
维护者 | alibaba 组织 | 许可证类型 | Apache-2.0 |
首次发布 | 2012 年 2 月 7 日 | 最新发布时间 | 2023 年 9 月 4 日 |
GitHub Star | 27217 | GitHub Fork | 8509 |
依赖包 | 1,298 | 依赖存储库 | 62,018 |
Druid是阿里开源的连接池,是Java语言中最好的数据库连接池.Druid能够提供强大的监控和扩展功能,是为监控而生的数据库连接池!
官方仓库:https://github.com/alibaba/druid
参考链接:
https://mvnrepository.com/artifact/com.alibaba/druid
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.alibaba:druid
组件健康度
技术健康度 | Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件,具有高性能、高可用、高扩展性等特点。Druid 可以很好地监控 DB 池连接和 SQL 的执行情况,提供了强大的日志和防御 SQL 注入的功能。Druid 还支持多种数据库,如 MySQL、Oracle、PostgreSQL、SQL Server 等。Druid 的技术健康度可以说是非常高的,是一个值得信赖的技术产品。 |
社区健康度 | Druid 是一个开源项目,源码托管在 GitHub 上,截至目前,已经有超过 28k 的 star 和 9k 的 fork,表明了 Druid 的受欢迎程度和社区活跃度。Druid 的 issue 和 pull request 也都有及时的回复和处理,反映了 Druid 的社区维护力度。Druid 还有一个专门的开发者社区,提供了丰富的文章、教程、案例和交流平台,方便了开发者的学习和使用。Druid 的社区健康度可以说是非常高的,是一个有活力的开源项目。 |
更新和维护频率 | Druid 的最新版本是 1.2.19,发布于 2023 年 9 月 4 日,这个组件的更新和维护频率较高,从GitHub上可以看到,它也有一些贡献者参与了代码提交和合并请求。它的更新和维护频率说明了它的技术活力和稳定性。 |
兼容性 | Druid 支持 JDK 6+ 和 JDBC 4+,可以适用于多种 Java 应用场景。Druid 还支持多种数据库,如 MySQL、Oracle、PostgreSQL、SQL Server 等,可以满足不同的数据存储需求。Druid 还可以与 Spring Boot、Spring Cloud 等流行的框架集成,提供了便捷的配置和使用方式。Druid 的兼容性可以说是非常好的,是一个灵活和通用的组件库。 |
文档和支持 | Druid 提供了详细的文档 ,介绍了 Druid 的基本概念、配置参数、使用方法、监控界面等内容,方便了开发者的理解和参考。Druid 还提供了在线演示 ,展示了 Druid 的监控功能和效果,让开发者能够直观地体验 Druid 的优势。Druid 还有一个专门的开发者社区,提供了丰富的文章、教程、案例和交流平台,方便了开发者的学习和使用。Druid 的文档和支持可以说是非常好的,是一个易于上手和使用的组件库。 |
综合以上几个方面来看,com.alibaba:druid 该组件的健康度是非常高的,是一个优秀且成熟的 JDBC 组件库。它具有高性能、高可用、高扩展性等特点,并且提供了强大的监控和防御 SQL 注入等功能。它还支持多种数据库和框架,具有良好的兼容性和灵活性。它还有一个活跃的社区和详细的文档,方便了开发者的学习和使用。Druid 是一个值得推荐和使用的技术产品。
参考链接:
https://developer.aliyun.com/article/795987
https://zhuanlan.zhihu.com/p/126696687
https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5
https://github.com/alibaba/druid
https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
https://github.com/alibaba/druid/wiki/FAQ
https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
https://developer.aliyun.com/article/1157595
组件许可证解读
Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:
- 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
- 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
- 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
- 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
- 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
- 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。
需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。
许可证原文链接:https://github.com/alibaba/druid/blob/master/license.txt
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2021-25327 | Alibaba Druid 目录遍历漏洞 | 高危 | (-∞,1.2.4) | 1.2.4 |
同类型可替代组件
- HikariCP:一个轻量级的 JDBC 连接池,它号称是目前最快的连接池,它的性能得益于最大限度地避免锁竞争。它还支持 Java 8 的 lambda 表达式和流式 API。官网:https://github.com/brettwooldridge/HikariCP/wiki
- C3P0:一个成熟的 JDBC 连接池,它提供了自动回收空闲连接、故障恢复、缓存 PreparedStatements 等功能。它还支持 JMX 管理和扩展。官网:https://www.mchange.com/projects/c3p0/
- DBCP:一个基于 Apache Commons 的 JDBC 连接池,它提供了基本的连接池功能,如连接管理、超时检测、空闲回收等。它也支持 JMX 管理和监控。官网:https://commons.apache.org/proper/commons-dbcp/
- Tomcat-JDBC:一个基于 Tomcat 的 JDBC 连接池,它提供了高性能、灵活配置、可插拔拦截器等功能。它也支持 Java 8 的 lambda 表达式和流式 API。官网:https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
组件SBOM
组件名称 | 版本 | 是否直接依赖 | 仓库 |
org.springframework.boot:spring-boot-starter-web | 2.7.3 | 是 | maven |
io.github.classgraph:classgraph | 4.8.139 | 否 | maven |
org.springframework:spring-context | 4.3.25.RELEASE | 否 | maven |
org.jboss:jandex | 2.4.2.Final | 否 | maven |
org.springframework.boot:spring-boot-actuator-autoconfigure | 2.7.3 | 否 | maven |
org.webjars.npm:font-awesome | 4.7.0 | 是 | maven |
jakarta.xml.bind:jakarta.xml.bind-api | 2.3.2 | 否 | maven |
org.springframework.boot:spring-boot-autoconfigure | 1.5.22.RELEASE | 是 | maven |
org.springframework:spring-orm | 5.3.22 | 否 | maven |
org.springframework:spring-jdbc | 4.3.25.RELEASE | 是 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1704692535272275968/1704692535372939264?allow=1