BasicDataSource 与 DriverManagerDataSource。哪个更适合生产就绪 spring-hibernate 应用程序?

BasicDataSource vs DriverManagerDataSource. Which is better for production ready spring-hibernate application?

有许多 DataSource 实现 类 可用,例如 org.apache.commons.dbcp2.BasicDataSourceorg.springframework.jdbc.datasource.DriverManagerDataSource。我如何决定(选择)在我的 Spring-mvc + Hibernate 应用程序中使用哪一个?

如果你通过Docs

DriverManagerDataSource: This class is not an actual connection pool; it does not actually pool Connections. It just serves as simple replacement for a full-blown connection pool, implementing the same standard interface, but creating new Connections on every call.

Useful for test or standalone environments

另一方面,DBCP 的 BasicDataSource 在 J2EE 容器之外提供 "real" 连接池。 Commons DBCP 的 BasicDataSource 和 C3P0 的 ComboPooledDataSource 是完整的连接池 bean,支持与此 class 相同的基本属性以及特定设置(例如 min/max 池大小等)。

因此,如果您正在开发测试应用程序,那么 DriverManagerDataSource 没问题,但对于生产就绪应用程序,必须使用 "real" 连接池,即 C3p0 的 ComboPooledDataSource 或 DBCP 的 BasicDataSource .

参考: https://docs.spring.io/spring/docs/3.0.0.RC3/reference/html/ch12s03.html