如何在Spring Boot应用程序中配置自定义数据库连接超时?

最后发布: 2019-04-04 08:31:50


问题

在我的Spring boot(2.0.7 RELEASE)应用程序中,我无法在application.properites文件中手动设置/覆盖数据库连接的超时。 我正在使用JPA,Hibernate,Tomcat连接池和Postgres。

我进行了深入研究,发现了非常相似的问题:

我提出新问题的原因是,以上两个问题均未得到公认的答案,也未得到有效的解决方案。 我尝试将每个建议的解决方案都包含在我的application.properties文件中,但没有成功。

另外,如问题2所述:如果我在@Transactional批注中添加参数'timeout = someSeconds',则连接超时符合预期,但如果我尝试将其提取到application.properties中,它将失败并且超时为默认时间。 这里的问题是我不仅希望事务在给定时间内所有连接都超时。

我在application.properties中尝试过的事情(所需的超时为4秒):

  • spring.jpa.properties.javax.persistence.query.timeout = 4000
  • spring.jdbc.template.query超时= 4
  • spring.transaction.defaultTimeout = 4
  • spring.datasource.tomcat.validation查询超时= 4

我读过的材料:

我缺少一些财产吗? 有谁知道为什么不能通过application.properties文件覆盖超时?

提前致谢。

java spring spring-boot jdbc