Webアプリケーションでは、すべて独自のDataSource
とTransactionManager
(すべて名前が異なる)を持つSpring 3.0.xを使用しているさまざまなコンポーネントを使用しています。それらはすべて、「メイン」webapp経由で、そのスプリング設定を含むコンテキストに含まれています。複数のTransactionManagerを持つSpring TransactionInterceptor
<tx:annotation-driven transaction-manager="transactionManager_componentName" />
そして、私はこのようになります注釈を追加するトランザクションである必要があり、それぞれの方法について介して、有効になって私は宣言型トランザクション管理を使用していますコンポーネントの春のconfigsのそれぞれにおいて
<import resource="classpath:spring-config-componentName.xml" />
、
@Transactional(propagation=Propagation.REQUIRES_NEW, value="transactionManager_componentName")
私が持っている問題は、私は一つだけTransactionInterceptor
はのTransactionManagersの一つではなく、への参照を持っているが作成されていることが分かったということですコンポーネントそのものの1つです。これを処理する方法はありますか? BeanとしてTransactionInterceptor
を指定してから@Transactional
注釈で参照するようにしますか?
各コンポーネントにTransactionProxyFactoryBean
を指定し、xml configを使用して宣言的なtransaciton管理を行う可能性があると思います。しかし、これは私が避けたいものです。
Springのドキュメント(10.5.6.2 Multiple Transaction Managers with @Transactional)に記載されている提案された方法は機能しません。