2017-04-07 11 views
4

Springでは、AOP-proxyのため、同じインスタンスから@Transactionalメソッドを呼び出すことはできません。自己注入を行い、自己プロキシインスタンスからそのメソッドを呼び出すことは良いアイデアでしょうか?何か欠点がありますか?トランザクション用のSpring自己インジェクション

+2

最も洗練された解決策がある場合がありますが、私はそれを数回使用しました。 Spring 4.3では自動自己学習機能が導入され、IMHOの春のサポートは悪いことではありません。 – Vipin

+0

」または「@EnableAspectJAutoProxy(exposeProxy = true)」を介して公開されたプロキシインスタンスを使用することもできます([SPR-10454](https:// jira.spring.io/browse/SPR-10454)と[JavaDoc](http://docs.spring.io/spring/docs/current/javadoc-api//org/springframework/context/annotation/EnableAspectJAutoProxy.html# exposeProxy--)。 – kriegaex

答えて

4

大丈夫です。 さらに、@Autowired注釈を使用してこの機能をサポートするためのJira ticketがありました。それはSpring 4.3+バージョンで修正されました。しかし、xmlベースの設定や、@Resourceアノテーションを使用している場合は、以前のバージョンで動作しています。

あなたはこのチケットの下で議論を見ることができます。 @Transactionalは、このために使用する例oneです:

@Asyncと@Transactional使用の場合に特に興味を持って。

関連する問題