因为DriverManagerDataSource只要有连接就新建一个connection,根本没有连接池的作用,所以在访问量大,并发的情况下表现很差。
所以用支持连接池的c3p0来替代,在application.xml替换原来的
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/metaservice</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123</value> </property> </bean>
替换后:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.mysql.jdbc.Driver</value> </property> <property name="jdbcUrl"> <value>jdbc:mysql://localhost:3306/data_analyze</value> </property> <property name="properties"> <props> <prop key="c3p0.minPoolSize">2</prop> <prop key="c3p0.maxPoolSize">50</prop> <prop key="c3p0.timeout">5000</prop> <prop key="c3p0.max_statement">100</prop> <prop key="c3p0.testConnectionOnCheckout">true</prop> <prop key="user">root</prop> <prop key="password">123</prop> </props> </property> </bean>
并在WEB-INF/lib下加入c3p0的jar包