3.13.3 与 Spring 的连接池

在很多情况下,比如web应用,都会有大量的小数据库事务。在这种情况下,根据需要创建可用于 Web 请求的数据库连接池通常是有意义的。虽然在建立连接时 MySQL 不会产生额外的进程,但创建和设置连接仍然有少量开销。连接池也缓解了状态下收集大量套接字等问题 TIME_WAIT

使用 Spring 设置 MySQL 连接池就像在应用程序上下文中更改数据源配置一样简单。我们可以使用许多配置。第一个示例基于 Jakarta Commons DBCP 库。下面的示例替换了基于 DriverManagerDataSourceDBCP 的 BasicDataSource 的源配置。

<bean id="dataSource" destroy-method="close"
  class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${db.driver}"/>
    <property name="url" value="${db.jdbcurl}"/>
    <property name="username" value="${db.username}"/>
    <property name="password" value="${db.password}"/>
    <property name="initialSize" value="3"/>
</bean>

两种解决方案的配置非常相似。不同之处在于 DBCP 将连接到数据库,而不是在每次请求连接时都创建一个新连接。我们还在这里设置了一个名为 的参数 initialSize。这告诉 DBCP 我们希望在池中创建三个连接。