tomcat-dbcp 与 commons-dbcp

2024-02-04

这两个连接池库之间似乎存在很多混淆。我想知道哪一个更好(如果有的话)?

以下是我想提出的一些要点...有人可以验证吗?

  1. Tomcat DBCP:使用默认的 tomcat-dbcp.jar,该jar 将出现在 tomcat/lib 目录中。你do notweb-inf/lib 中需要 commons-dbcp.jar 或 commons-pool.jar 库。 DB驱动程序应放置在tomcat/lib中。

  2. Tomcat DBCP 数据源类是org.apache.tomcat.dbcp.dbcp.BasicDataSource。 Commons DBCP 数据源类是org.apache.commons.dbcp.BasicDataSource.

  3. 这两者之间的唯一区别在于这个博客 http://vigilbose.blogspot.com/2009/03/apache-commons-dbcp-and-tomcat-jdbc.html。不知道信息是否正确。

  4. Tomcat 官方文档 http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#Installation明确提到大多数类刚刚被重新命名和重新打包。

所以问题是:使用哪一种以及哪一种更好?


Tomcat DBCP 只是 Apache Commons DBCP 的重命名版本,也具有不同的内部包名称前缀。

在构建时,Tomcat 获取 Commons DBCP 源(版本取决于 Tomcat 版本,例如 Tomcat 7.0.27 使用 Commons DBCP 1.4),并进行包名称替换(org.apache.commons -> org.apache.tomcat.dbcp)并将结果构建为tomcat-dbcp.jar.

这样做是为了使内部 Tomcat JDBC 池永远不会与 Commons DBCP 类的可能应用程序使用发生冲突。这避免了许多潜在的类加载问题。

Edit:“dbcp”包是关于数据源管理的。对于纯池实现,Commons DBCP 依赖于 Commons Pool(包org.apache.commons.pool),但是在Tomcat中池的实现被替换为Tomcat自己的JDBC 池 https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#Introduction(包裹org.apache.tomcat.jdbc.pool).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tomcat-dbcp 与 commons-dbcp 的相关文章

随机推荐