BasicDataSource 与 DriverManagerDataSource。哪个更适合生产就绪 spring-hibernate 应用程序?
BasicDataSource vs DriverManagerDataSource. Which is better for production ready spring-hibernate application?
有许多 DataSource 实现 类 可用,例如 org.apache.commons.dbcp2.BasicDataSource
、org.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
有许多 DataSource 实现 类 可用,例如 org.apache.commons.dbcp2.BasicDataSource
、org.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