web-dev-qa-db-ja.com

@ConfigurationクラスでSpringにアノテーション駆動型トランザクションを設定する

そのため、Springの最新バージョンでは、@Configurationアノテーションを使用してSpringの構成をセットアップできます。 JavaConfigでは、@AnnotationDrivenTx@ AnnotationDrivenTx Reference Link) アノテーションを使用してConfigクラスでトランザクションを設定できるようになりました。しかし、JavaConfigが廃止されたので、JavaConfigを使用せずに、application-context.xmlに何も追加することなく、同様の設定を行う方法を誰かが知っているかどうか疑問に思いました。これが私のConfigクラスのために基本的に持っているものです

@Configuration
@ImportResource("config/application-context.xml")
public class Config {

     public @Bean DataSource dataSource() {
           //get and return datasource
     }

     public @Bean Service1 getService1() {
          //return service1Impl
     }
}

そして、Service1をトランザクションにしたいのです。誰かがこれを行う方法について何かアイデアがある場合、またはこれが不可能な場合は私に知らせてください。

ありがとう!

18
Ian Dallas

これで、@EnableTransactionManagementを使用できます。

詳細については、この投稿を参照してください: http://blog.springsource.com/2011/06/10/spring-3-1-m2-configuration-enhancements/

55
AHungerArtist

このフォーラム投稿 によると、それは不可能のようです。

spring3.1の@Configurationクラスでアノテーション駆動型TXを有効にするためのよりファーストクラスのメカニズムがあるかもしれませんが、それまでの間、推奨されるアプローチは@ImportResourceを使用して宣言するXMLのスニペットを含めることです。 <tx:annotation-driven/>

待ってください:しかし、とにかくXMLコンテキストを持っているようです。それに<tx:annotation-driven/>を追加して、 @Transactional を使用してみませんか?

3

http://blog.springsource.com/2011/02/17/spring-3-1-m1-featurespec をご覧ください。 TxAnnotationDrivenなどのSpring3.1のFeatureSpecificationクラスは、上記の問題を正確に解決するように設計されています。

3
Chris Beams