JdbcTemplate与TransactionManager如何一起工作?

Ale*_*kov 6 java spring transactions jdbctemplate

据我所知,DataSourceTransactionManager将JDBC连接从指定的DataSource绑定到当前线程,允许每个DataSource一个线程绑定连接.如果它是一个连接池,它将采用一个可用的连接.

在此之后,如果我在事务中使用JdbcTemplate,它将捕获由DataSourceTransactionManager绑定的连接.我能正确理解机制吗?有没有要求进行事务管理器bean定义(即单例)?

ska*_*man 4

您已经描述了它的工作原理。Spring 的事务同步逻辑承担着相当可怕的责任,需要在 JDBC、Hibernate、JPA 等之间保持事务同步,并且最终结果非常无缝。

事务管理器必须是单例,是的。任何一笔交易都仅由一个交易管理器管理,如果您有多个交易管理器,那么您将陷入痛苦的境地。