W innych postach jest to połowiczna odpowiedź i chciałem być bardzo wyraźny. Chciałem też być bardziej w stylu Spring-Boot. W razie potrzeby możesz zmienić odstępy czasu.
Opcja 1:Wyrzuć zerwane połączenia z puli.
Użyj tych właściwości:
spring.datasource.test-on-borrow=true
spring.datasource.validation-query=SELECT 1;
spring.datasource.validation-interval=30000
Opcja 2:Utrzymuj połączenia w puli.
Użyj tych właściwości:
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1;
spring.datasource.time-between-eviction-runs-millis=60000
Opcja 3:Proaktywnie usuwaj bezczynne połączenia.
Użyj tych właściwości (Uwaga:nie mogłem znaleźć wiarygodnej dokumentacji na ten temat dla Spring Boot. Również limit czasu jest w sekundach, a nie w milisekundach):
spring.datasource.remove-abandoned=true
spring.datasource.remove-abandoned-timeout=60
Miłego uruchamiania!