我从我的互联网研究中得到,Spring Transaction有自己的计时器,检查事务是否超过其设置的超时值。我已经用AspectJ对此进行了几次测试,但是在事务执行期间我从未发现过这样的计时器进程。Spring 事务超时真的可以使用自己的计时器吗?
我发现,似乎 Spring 事务存储事务的开始时间(或结束时间(,然后检查当前时间是否超过之前存储的结束时间,在访问数据库资源的某个点。
事实是什么?
是的,春季事务可能会超时。您可以在批注或 XML 元素上设置@Transactional
<tx:method/>
超时。默认值是在基础事务系统(如数据库事务(上设置的任何值。
有关详细信息,请参阅文档:https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html
至于如何实现超时的细节,在Spring版本和所使用的底层事务之间可能会有所不同。例如,当使用 JTA 事务时,超时直接在 UserTransaction
上设置。