7

私が理解している限り、DataSourceTransactionManager は、指定された DataSource から現在のスレッドに JDBC 接続をバインドし、DataSource ごとに 1 つのスレッドにバインドされた接続を許可します。接続のプールの場合は、使用可能な接続の 1 つが使用されます。

この後、トランザクション内で JdbcTemplate を使用すると、DataSourceTransactionManager によってバインドされた接続がキャプチャされます。仕組みを正しく理解していますか?トランザクション マネージャー Bean 定義 (つまり、シングルトン) を作成するための要件はありますか?

4

2 に答える 2

3

あなたはそれがどのように機能するかについてかなり説明しました。Spring のトランザクション同期ロジックには、JDBC、Hibernate、JPA などの間でトランザクションの同期を維持するというかなり恐ろしい責任があり、最終結果は非常にシームレスです。

はい、トランザクションマネージャーはシングルトンでなければなりません。1 つのトランザクションは 1 つのトランザクション マネージャーによってのみ管理されます。複数のトランザクション マネージャーが存在する場合は、苦痛の世界になります。

于 2010-02-12T09:51:05.590 に答える