第34章 パフォーマンス調整
本章では Seam アプリケーションで最適なパフォーマンスを得るためのヒントを説明しています。
34.1. インターセプタの迂回 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
repetitive valueJavaServer Faces (JSF) データテーブルにある反復値バインディングや
ui:repeat などの反復コントロールの場合、 参照される Seam コンポーネントの呼び出しが行われるたびに完全なインターセプタスタックが呼び出されます。特にコンポーネントが何度もアクセスされると、これにより大幅にパフォーマンスが低下することがあります。 呼び出される Seam コンポーネントのインターセプタスタックを無効にすることでパフォーマンスを向上させることができます。 コンポーネントクラスに @BypassInterceptors アノテーションを付与します。
警告
インターセプタを無効にする前に、
@BypassInterceptors の付いたコンポーネントはすべてバイジェクション、 アノテーション付きセキュリティ制限、 同期などの機能は使用できない点に注意してください。 ただし、 通常は @In でコンポーネントをインジェクトする代わりに Component.getInstance() を使用するなどこれらの機能を補う手段があります。
次のコード一覧はその無効化されたインターセプタを持つ Seam コンポーネントを表しています。