最简单的方法是
autoReconnect在JDBC URL中指定属性,尽管这不是推荐的方法。
spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true
当您有活动的连接并且在事务期间发生某些事情并且将要进行重新连接时,这可能会产生问题。在事务开始时验证连接并在开始时获取新的连接时,它不会出现问题。
但是,最好在应用程序的生命周期内启用连接验证。为此,您可以指定几个属性。
首先从指定允许该池的最大连接数开始。(有关确定最大池大小的信息,请阅读this)。
spring.datasource.max-active=10
您可能还需要指定初始连接数
spring.datasource.initial-size=5
接下来,您要指定空闲连接的最小和最大数量。
spring.datasource.max-idle=5spring.datasource.min-idle=1
要验证连接,您需要指定一个验证查询以及何时验证。您想定期进行验证,而不是何时从池中检索连接(这是为了防止池中的连接断开)。
spring.datasource.test-while-idle=truespring.datasource.test-on-borrow=truespring.datasource.validation-query=SELECT 1
现在,您还可以验证连接空闲时的状态,您需要指定要多久一次对连接运行此查询以及何时将连接视为空闲。
spring.datasource.time-between-eviction-runs-millis=5000 (this is the default)spring.datasource.min-evictable-idle-time-millis=60000 (this is also default)
所有这些都将触发对(空闲)连接的验证,并且当发生异常或空闲时间过去时,您的连接将从池中删除。
假设你使用Tomcat作为JDBC连接池这是一个很好的读什么,以及如何配置的。



