2016-09-10 7 views
0

複数の変換で組み込みDerbyの互換性の問題があるため、アプリケーションを開始したプロファイルに基づいて@Transactionalのプロパティ伝播を変更する必要があります。Spring @トランザクションの条件付き伝播プロパティー

例: 自動テストを実行するプロファイルでアプリケーションを起動すると、@Transactionalはデフォルトの伝播(Propagation.REQUIRED)で構成されます。他のプロファイルがロードされると、伝播はPropagation.REQUIRES_NEWに設定されます。

これをJava Configでどのように達成できますか? xmlの設定では、過去にaop:apt:/ aop:advisorとtx:adviceを使ってこれを行ってきましたが、Java Configではこれを見つけることができません。

+0

'@ Transactional'アノテーションには、使用時に設定できるいくつかの設定/プロパティがあります。それが行く方法です。あるいは、あなたは「グローバルなファッション」でそれをやろうとしていますか? –

+0

はい、私は知っていますが、Java Configのプロファイルに基づいてそのプロパティを設定する方法はありますか? – voliveira89

答えて

0

可能な(醜い)解決策が見つかりました。 @ImportResourceアノテーションを使用して、xmlファイルをルートJava設定ファイルにインポートすることができ、そのファイルにAOPを介して必要な設定を行います。

@Configuration 
@ImportResource("classpath:/spring-dataaccess-aop-config.xml") 
@Import(...) 
public class RootConfig {}