第6章 Seam コンポーネントの構成
Seam では XML ベースの設定の必要性を最小限に抑えることを目的としています。 ただし、 XML を使って Seam を設定したいという理由はさまざまです。 Java コードからデプロイメント固有の情報を切り離したい、 再利用可能なフレームワークを作成可能にしたい、 Seam 組み込み機能を構成したい等の理由です。 Seam はコンポーネントの設定に対して 2 つのアプローチを提供します。 プロパティファイルまたは
web.xml
でのプロパティ設定によるコンポーネントの設定と components.xml
によるコンポーネントの設定です。
6.1. プロパティ設定によるコンポーネントの構成
(システムプロパティの) サーブレットコンテキストパラメータ、またはクラスパスのルートにある
seam.properties
プロパティファイルのいずれかを持つ設定プロパティを Seam に与えることができます。
設定可能な Seam コンポーネントは設定可能な属性の JavaBeans スタイルのプロパティ setter メソッドを公開しなければなりません。 つまり、
com.jboss.myapp.settings
という名前の Seam コンポーネントに setLocale()
という setter メソッドがある場合、 次のいずれかを与えることができます。
seam.properties
ファイル内にcom.jboss.myapp.settings.locale
という名前のプロパティを与えることができます。- 起動時に
-D
でorg.jboss.seam.properties.com.jboss.myapp.settings.locale
という名前のシステムプロパティを与えることができます。 - または、 サーブレットコンテキストパラメータとして同じシステムプロパティを与えることができます。
これらのいずれもクラスパスのルートで
locale
属性値を設定します。
同じメカニズムが Seam 自体の設定にも使われます。 たとえば、 対話のタイムアウトを設定するには、
org.jboss.seam.core.manager.conversationTimeout
の値を web.xml
または seam.properties
内に与えるか、 org.jboss.seam.properties
が先頭に付いたシステムプロパティで与えます。 (setConversationTimeout()
という setter メソッドを持つ org.jboss.seam.core.manager
という名前の組み込み Seam コンポーネントがあります。)