2016-11-21 11 views
17

@EnableTransactionManagementはスプリングブートで必要ですか? 私はいくつかの研究を行った。一部の人々は、あなたがそれを必要としないと言います、Spring Bootは既に有効になっているので、他の人はあなたが明示的にそれを使用しなければならないと言います。どうですか?@EnableTransactionManagement(スプリングブート)

答えて

19

おそらくあなたはSpringデータも使用しています。 @EnableTransactionManagementがなくても、Springデータリポジトリの呼び出しは、デフォルトでトランザクションに囲まれています。 Spring Dataが既存のトランザクションを検出すると、既存のトランザクションが再利用されます。そうでない場合、新しいトランザクションが作成されます。

@ただし、@EnableTransactionManagementがアクティブ化されている(または他の方法で処理されているトランザクションをコンフィグレーションしている)ときにのみ、自分のコード内のトランザクション注釈が評価されます。

容易にあなたapplication.propertiesに次のプロパティを追加することによって、トランザクション動作をトレースすることができます

logging.level.org.springframework.transaction.interceptor=TRACE 

Showing a Spring transaction in logを参照)

13

を春ブーツ検出します>https://spring.io/guides/gs/managing-transactions/

によると、クラスパス上のspring-jdbcとh2とあなたのためにDataSourceとJdbcTemplateを自動作成するt。このようなインフラストラクチャは現在使用可能で、専用の構成がないため、のためにDataSourceTransactionManagerも作成されます。これは@Transactional注釈付きメソッドをインターセプトするコンポーネントです。

また、あなたのコンテキストで作成した豆を一覧表示する春ブート・スターター・アクチュエータを使用することができますし、それが

豆見つける ":『のTransactionManager』

関連する問題