2011-01-26 10 views
0

私たちがオブジェクトをプロキシすると、シーンの後ろに何が起こりますか?例えば、私は、bean id = "bookService"がSpringのTransactionProxyFactoryBeanクラスを参照していると言っています。舞台裏での春のプロキシー化

TransactionProxyFactoryBeanのtarget属性がBookServiceImplクラスを指しています。 BookServiceImpl(これはBookServiceインターフェースの実装です)がプロキシされています。 ここではどうなりますか?このTransactionProxyFacotoryBeanクラスは、プロキシされているターゲットを拡張しますか?

もしそうなら、BookServiceImpl(実装)またはBookService(インターフェース)のTransactionProxyFactoryBeanサブタイプ自体がありますか?

答えて

0

TransactionProxyFactoryBeanはプロキシを作成します。それ自体はプロキシではありません。

このプロキシは、Beanへの呼び出しを処理し、トランザクションを適用するように設定したメソッドの場合、トランザクションを開始するTransactionInterceptorを呼び出し、Beanのメソッドを呼び出してからトランザクションを終了します。

proxyTargetClass = "true"の場合、プロキシは(CGLIBを使用して)クラスのサブタイプになります。それ以外の場合、プロキシは、ターゲットクラスが実装するインタフェースのサブタイプになります。

関連する問題