BasicDataSource与DriverManagerDataSource。哪种产品更适合生产就绪的弹簧休眠应用?

时间:2018-09-29 10:45:01

标签: spring spring-mvc datasource connection-pooling

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

1 个答案:

答案 0 :(得分: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