第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 コンポーネントがあります。)