@Transactional
でメソッドに注釈を付けると、実際に何が起こっているのか知りたいですか? もちろん、私はSpringがそのメソッドをトランザクションにラップすることを知っています。Spring - @Transactional - バックグラウンドではどうなりますか?
しかし、私は、次の疑問があります。
- を私は春がプロキシクラスを作成することを聞いたことありますか?誰かがこれをもっと詳しくの深さで説明できますか? 実際にそのプロキシクラスには何が存在しますか?実際のクラスはどうなりますか?
注:このメカニズムは、プロキシをベースにしているため、のみ「外部」法はから入ってくるコールとどのように私はまた、その春のドキュメントを読み込むSpringの作成プロキシクラス
を見ることができますプロキシは傍受されます。これは、呼び出されたメソッドが @Transactional
とマークされていても、実行時に 'self-invocation'、つまりターゲットオブジェクト内の他のメソッドを呼び出すターゲットオブジェクト内のメソッドは実際のトランザクションにつながりません。
出典:http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html
なぜ唯一の外部メソッドの呼び出しトランザクションの下になり、ない自己呼び出し方法?
関連する議論はこちら:http://stackoverflow.com/questions/3120143/where-should-i-put-transactional-annotation-at-an-interface-definition-or-at-an/3120323#3120323 –