【问题标题】:BasicDataSource vs DriverManagerDataSource. Which is better for production ready spring-hibernate application?BasicDataSource 与 DriverManagerDataSource。哪个更适合生产就绪的 spring-hibernate 应用程序?
【发布时间】:2018-09-29 10:45:00
【问题描述】:

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

【问题讨论】:

  • Spring Boot 默认使用 Hikari 连接池。这是一个非常好的和高效的游泳池。

标签: spring spring-mvc datasource connection-pooling


【解决方案1】:

如果你通过Docs

DriverManagerDataSource:这个类不是真正的连接池;它实际上并没有汇集 连接。它只是作为一个成熟的简单替代品 连接池,实现相同的标准接口,但 在每次通话时创建新的连接。

适用于测试或独立环境

另一方面,DBCP 的 BasicDataSource 在 J2EE 容器之外提供“真正的”连接池。 Commons DBCP 的 BasicDataSource 和 C3P0 的 ComboPooledDataSource 是全连接池 bean,支持与此类相同的基本属性以及特定设置(例如最小/最大池大小等)。

因此,如果您正在开发测试应用程序,那么 DriverManagerDataSource 是可以的,但对于生产就绪的应用程序必须使用“真实”连接池,即 C3p0 的 ComboPooledDataSource 或 DBCP 的 BasicDataSource

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

【讨论】:

    猜你喜欢
    • 2013-07-30
    • 2010-10-08
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多