3
を確認し、私は次のステートメントを越え(ページ193)に来た:たとえば春AOP:「プロの春2.5」を参考にしてCGLIBのプロキシ動作
を、CGLIBプロキシは への適切なバイトコードは、いずれかを呼び出す生成プロキシによって導入されたオーバーヘッドを劇的に減らすことができます。
私はSpringのソースコードを見て、いくつかの実験を試みましたが、このステートメントを確認できませんでした。私はそれを確認するためにどのような簡単なプログラムを書くことができますか?
スタックトレースを取得するには、私はもっと簡単でした。私は、アドバイスされたメソッドとノンアドバイスされたメソッドの両方でThrowableを作成し、スタックトレースを出力しました。しかし、両方とも、それらは 'Cglib2AopProxy $ DynamicAdvisedInterceptor.intercept'によって呼び出され、次に 'CglibMethodInvocation'オブジェクトを作成し、それを処理しました。だから、スタックトレースポイントから、私は違いは見られませんでした。 BCELのアプローチを試みます。 – shrini1000
私は、clazzがCGLIBプロキシクラスオブジェクトであるBCELの 'Repository.lookupClass(clazz)'を使って試しました。しかし、私は次の例外があります:スレッド "main"の例外java.lang.ClassNotFoundException:SyntheticRepositoryがfoo.Fooをロードできませんでした$ EnhancerByCGLIB $$ 42857850 – shrini1000
私はvisualvmがSpring AOPのプロキシを介して見ることができます(私は)、私はそれを試してみると思います。 –