第13章 Seam アプリケーションフレームワーク


Seam はアノテートされた純粋な Java クラスで簡単にアプリケーションを作成することができます。設定や拡張により再利用できる既成のコンポーネントのセットを提供することで一般的なプログラミングタスクをさらに簡単にできます。
Seam Application Framework では Web アプリケーションで基本的なデータベースアクセスを行う場合に Hibernate または JPA を使用することにより記述しなければならないコード量を少なくすることができます。 フレームワークには理解しやすく必要に応じ拡張しやすいシンプルなクラスの一部が含まれています。

13.1. はじめに

Seam Application Framework が提供するコンポーネントは、2 つの方法いずれかで利用することができます。1 つ目の方法は、 他の Seam の組み込みコンポーネントと同様に、components.xml でコンポーネントのインスタンスをインストールし、設定する方法です。 たとえば、 以下の components.xml 設定の一部では Person エンティティに対する基本的な CRUD 操作を実行する 1 コンポーネントをインストールします。
<framework:entity-home name="personHome" entity-class="eg.Person" 
           entity-manager="#{personDatabase}"> 
<framework:id>#{param.personId}</framework:id> 
</framework:entity-home>
Copy to Clipboard Toggle word wrap
あまり XML に依存したくない場合は拡張により行うこともできます。
@Name("personHome") 
public class PersonHome extends EntityHome<Person> { 
@In EntityManager personDatabase; 
  public EntityManager getEntityManager() { 
    return personDatabase; 
  } 
}
Copy to Clipboard Toggle word wrap
2 つ目の方法の主要な利点はフレームワークのクラスが機能拡張やカスタマイズ向けに設計されているという点であり、 これにより機能の追加や組み込み機能の無効化が容易になります。
もうひとつの利点として、 クラスとして EJB ステートフルセッション Bean (または 純粋の JavaBean コンポーネント) を使うオプションもあります。
@Stateful 
@Name("personHome") 
public class PersonHome extends EntityHome<Person> 
                        implements LocalPersonHome { }
Copy to Clipboard Toggle word wrap
クラスをステートレスセッション Bean にすることもできます。 この場合、 その名前が entityManager であってもインジェクションを使って永続コンテキストを提供 しなければなりません
@Stateless 
@Name("personHome") 
public class PersonHome extends EntityHome<Person> 
                        implements LocalPersonHome { 
  @In EntityManager entityManager; 
  public EntityManager getPersistenceContext() { 
    entityManager; 
  } 
}
Copy to Clipboard Toggle word wrap
現時点で、Seam Application Framework は CRUD 用に EntityHomeHibernateEntityHome、またクエリ用にEntityQueryHibernateEntityQuery の 4 つの主要な組み込みコンポーネントを提供しています。
Home と Query コンポーネントはセッションスコープ、イベントスコープ、または対話スコープで機能するように作成されています。 どのスコープを使用するかは、アプリケーションで使用する状態モデルによります。
Seam Application Framework は Seam 管理永続コンテキストでのみ動作します。 デフォルトでは、コンポーネントは entityManager という名前の永続コンテキストを期待します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat