这是关于连接池的配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="0"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="20"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="20"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="1"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000"></property>
</bean>
这个是因为你连接池中配置的连接等待时间过长,mysql
已经认为连接过期了。
解决办法如下
1、修改my.cnf延长连接超时时间
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
2、在连接URL上添加参数autoReconnect=true&failOverReadOnly=false