@Configuration
xml ファイルの代わりに、Spring の構成に注釈を使用しています。異なるセッション ファクトリと異なるトランザクション マネージャーを使用して 2 つのデータソースを構成しています。ここで@EnableTransactionManagement
注釈の問題に悩まされています。私はそのドキュメントを読んで、
@EnableTransactionManagement
より柔軟です。PlatformTransactionManager
コンテナー内の任意の Beanのタイプ別ルックアップにフォールバックします。したがって、名前は「txManager」、「transactionManager」、または「tm」にすることができます。単に問題ではありません。
PlatformTransactionManager
これは、メソッドに付けた名前が何であれ、 2 つのトランザクション マネージャーがある間は常にオブジェクトを返すメソッドを検索することを意味します。問題は、このクラスをテストすると、エラーが発生することです。
org.springframework.beans.factory.NoSuchBeanDefinitionException
: タイプ [org.springframework.transaction.PlatformTransactionManager
] の一意の Bean が定義されていません: 単一の Bean が必要ですが、2 が見つかりました
2 つの異なる構成クラスを作成しようとしましたが、無駄でした。xml 構成では、これは当てはまりませんでした。両方のトランザクション マネージャーを 2 つの<tx:annotation-driven transaction-manager="" />
タグで登録したところ、問題なく動作しました。ただし、ここでは注釈を使用して同じことを行うことはできません。
Spring アノテーション付き構成クラスで 2 つの異なるトランザクション マネージャーを使用して 2 つのデータソースを構成したい場合はどうすればよいですか?