第34章 パフォーマンス調整


本章では Seam アプリケーションで最適なパフォーマンスを得るためのヒントを説明しています。

34.1. インターセプタの迂回

repetitive valueJavaServer Faces (JSF) データテーブルにある反復値バインディングや ui:repeat などの反復コントロールの場合、 参照される Seam コンポーネントの呼び出しが行われるたびに完全なインターセプタスタックが呼び出されます。特にコンポーネントが何度もアクセスされると、これにより大幅にパフォーマンスが低下することがあります。 呼び出される Seam コンポーネントのインターセプタスタックを無効にすることでパフォーマンスを向上させることができます。 コンポーネントクラスに @BypassInterceptors アノテーションを付与します。

警告

インターセプタを無効にする前に、 @BypassInterceptors の付いたコンポーネントはすべてバイジェクション、 アノテーション付きセキュリティ制限、 同期などの機能は使用できない点に注意してください。 ただし、 通常は @In でコンポーネントをインジェクトする代わりに Component.getInstance() を使用するなどこれらの機能を補う手段があります。
次のコード一覧はその無効化されたインターセプタを持つ Seam コンポーネントを表しています。
@Name("foo")
@Scope(EVENT)
@BypassInterceptors
public class Foo {
  public String getRowActions() {
    // Role-based security check performed inline instead of using 
    // @Restrict or other security annotation
    Identity.instance().checkRole("user");
     
    // Inline code to lookup component instead of using @In
    Bar bar = (Bar) Component.getInstance("bar");
   
    String actions;   
    // some code here that does something     
    return actions;
  }
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat