0

プロジェクトで Spring メソッド インターセプターを使用しています。メソッドインターセプターを導入することでパフォーマンスの問題が発生する可能性があるかどうか疑問に思っています。同時に、私の理解では、Spring はプロキシを作成し、インターセプトされたメソッドを再定義し、インターセプター ロジックをインターセプトされた各メソッドでインライン化します。実行時に、Bean を呼び出す代わりに、Spring はプロキシ Bean を使用します。そのため、インターセプターを使用すると、プロキシ Bean 自体の作成に追加の時間がかかります。さらにインターセプターが追加されたとしても、同じプロキシ Bean のメソッド内にメソッド呼び出しを追加するだけの問題です。この理解は正しいでしょうか?

4

1 に答える 1

0

おそらく用語は@LearningHumanと少し混同されています。インターセプターはSpring MVCの用語であり、実際のコントローラーメソッドが呼び出される前に実行するアクションを指します-ここではパフォーマンスのペナルティがありますが、比較すると無視できる傾向がありますブラウザへのデータのストリーミングに関連する IO のコスト、データベースの往復時間。

Spring がターゲット ポイントカットを持つ各 Bean の動的プロキシを作成するAspectsについて言及していると思いますが、プロキシが作成された場合に実際には呼び出しをインライン化していないため、ペナルティがありますが、これは Web アプリケーションのコンテキスト内にあり、IO 時間はおそらく、追加のメソッド呼び出しによるペナルティよりも高くなります。パフォーマンスが懸念される場合は、少なくともアドバイスへの呼び出しをインライン化できる、アスペクトを使用したコンパイル時の織り方を使用できます。

于 2012-06-28T12:00:54.677 に答える