7

据我了解,DataSourceTransactionManager 将指定 DataSource 的 JDBC 连接绑定到当前线程,允许每个 DataSource 一个线程绑定连接。如果它是一个连接池,它将占用一个可用连接。

在此之后,如果我在事务中使用 JdbcTemplate,它将捕获由 DataSourceTransactionManager 绑定的连接。我是否正确理解了机制?A 制作事务管理器 bean 定义(即单例)有什么要求吗?

4

2 回答 2

3

你已经描述了它是如何工作的。Spring 的事务同步逻辑有相当可怕的责任来保持跨 JDBC、Hibernate、JPA 等的事务同步,并且最终结果是非常无缝的。

事务管理器必须是单身人士,是的。任何一项事务都只由一个事务管理器管理,如果您有多个事务管理器,那么您将陷入痛苦的世界。

于 2010-02-12T09:51:05.590 回答
0

从 DataSource 获取的连接的生命周期默认值为 15 秒。您可以在连接属性文件中明确指定最大连接超时。

于 2017-12-13T04:56:20.707 回答