根据Spring论坛中的一位资深成员,Spring DataSource不适用于生产用途:
以上答案只是解决方案的一部分。确实,您需要适当的事务代理,并且需要连接池。DriverManagerDataSource并非用于生产,它每次需要时都打开和关闭一个日期数据库连接。
相反,您可以将C3P0用作处理重新连接的DataSource,并且性能要好得多。这是Spring xml配置中潜在配置的快速示例:
<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="com.MysqL.jdbc.Driver" />
<property name="jdbcUrl" value="#{systemProperties.dbhost}" />
<property name="user" value="#{systemProperties.dbuser}" />
<property name="password" value="#{systemProperties.dbpass}" />
<property name="maxPoolSize" value="25" />
<property name="minPoolSize" value="10" />
<property name="maxStatements" value="100" />
<property name="testConnectionOnCheckout" value="true" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="c3p0DataSource" />
</bean>