|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.seasar.framework.container.factory.S2ContainerFactory
S2コンテナ
を構築するためのファクトリクラスです。
S2コンテナファクトリは、 diconファイルなどの設定ファイルから新たにS2コンテナを構築する機能を提供します。 S2コンテナの構築時には、 指定されたクラスローダをスレッドのコンテキストクラスローダとして設定します。 そのため、 S2コンテナに登録されるクラスはこのクラスローダによってロードされます。
実際にS2コンテナを構築する処理は、 S2ContainerFactory.Provider
を実装したクラスに委譲します。
デフォルトの実装として、 S2ContainerFactory.DefaultProvider
を提供します。 別の実装を使いたい場合は、
コンフィグレーションdiconファイルにS2ContainerFactory.Provider
を実装したクラスをコンポーネントとして登録します。
コンフィグレーションdiconファイルとは、 S2コンテナおよびS2コンテナファクトリの振る舞いを変更するためのものです。 デフォルトでは、
クラスパス上のs2container.dicon
を読み込みます。 システムプロパティのorg.seasar.framework.container.factory.config
にdiconファイルを指定することで、
そのファイルをコンフィグレーションdiconファイルとして使うことが出来ます。
コンフィグレーションdiconファイルは、 S2ContainerFactory.Configurator
を実装したクラスによって処理されます。
デフォルトの実装としてS2ContainerFactory.DefaultConfigurator
を提供します。
コンフィグレーションdiconファイルにS2ContainerFactory.Configurator
を実装したクラスをコンポーネントとして登録することで、
コンフィグレーションdiconファイルの処理方法を変更することが出来ます。
入れ子クラスの概要 | |
static interface |
S2ContainerFactory.Configurator
S2コンテナ およびS2コンテナファクトリ の振る舞いを構成します。
|
static class |
S2ContainerFactory.DefaultConfigurator
S2コンテナ およびS2コンテナファクトリ の振る舞いを構成するデフォルトの実装クラスです。
|
static class |
S2ContainerFactory.DefaultProvider
S2コンテナファクトリ の振る舞いを提供する、 デフォルトの実装クラスです。
|
static interface |
S2ContainerFactory.Provider
S2コンテナファクトリ の振る舞いを提供します。
|
フィールドの概要 | |
protected static S2Container |
configurationContainer
コンフィグレーションdiconファイルから構築された、 コンフィグレーションS2コンテナです。 |
protected static boolean |
configuring
S2コンテナファクトリが、 コンフィグレーション中かどうかを表します。 |
static String |
DEFAULT_BUILDER_NAME
コンフィグレーションdiconファイルに登録する、 デフォルトの S2コンテナビルダ のコンポーネント名を表す定数です。 |
protected static S2ContainerBuilder |
defaultBuilder
デフォルトの S2コンテナビルダ です。 |
static String |
FACTORY_CONFIG_KEY
コンフィグレーションdiconファイルを指定するためのシステムプロパティ名を表す定数です。 |
static String |
FACTORY_CONFIG_PATH
コンフィグレーションdiconファイルのデフォルトのファイル名を表す定数です。 |
protected static boolean |
initialized
S2コンテナファクトリが、 初期化済みかどうかを表します。 |
protected static ThreadLocal |
processingPaths
S2コンテナの構築中に処理中の、 設定ファイルパスを表します。 |
protected static S2ContainerFactory.Provider |
provider
ファクトリプロバイダ です。 |
コンストラクタの概要 | |
S2ContainerFactory()
|
メソッドの概要 | |
protected static void |
assertCircularInclude(S2Container container,
String path)
指定されたパスが、 指定されたS2コンテナおよび、その上位コンテナに含まれていないことを確認します。 |
protected static void |
assertCircularInclude(S2Container container,
String path,
LinkedList paths)
指定されたパスが、 指定されたS2コンテナおよび、その上位コンテナに含まれていないことを確認します。 |
static void |
configure()
コンフィグレーションdiconファイルに基づいて、 S2コンテナファクトリを構成します。 |
static void |
configure(String configFile)
指定されたコンフィグレーションdiconファイルに基づき、 S2コンテナファクトリを構成します。 |
static S2Container |
create()
設定ファイルを使用せず、 空のS2コンテナを構築して返します。 |
static S2Container |
create(String path)
指定された設定ファイルに基づき、 S2コンテナを構築して返します。 |
static S2Container |
create(String path,
ClassLoader classLoader)
指定された設定ファイルに基づき、 指定されたクラスローダを使用してS2コンテナを構築して返します。 |
static void |
destroy()
S2コンテナファクトリの構成をクリアして、 初期化前の状態に戻します。 |
protected static void |
enter(String path)
処理中の設定ファイルパスを保持し、 循環インクルードを検出できるようにします。 |
static S2Container |
getConfigurationContainer()
コンフィグレーションS2コンテナを返します。 |
protected static S2ContainerBuilder |
getDefaultBuilder()
デフォルトS2コンテナビルダを返します。 |
protected static S2ContainerFactory.Provider |
getProvider()
ファクトリプロバイダを返します。 |
static S2Container |
include(S2Container parent,
String path)
指定された設定ファイルからS2コンテナを構築し、 親S2コンテナに対してインクルードします。 |
protected static void |
leave(String path)
処理中として保持していた設定ファイルのパスを取り除きます。 |
protected static void |
setDefaultBuilder(S2ContainerBuilder builder)
デフォルトS2コンテナビルダを設定します。 |
protected static void |
setProvider(S2ContainerFactory.Provider p)
ファクトリプロバイダを設定します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final String FACTORY_CONFIG_KEY
public static final String FACTORY_CONFIG_PATH
public static final String DEFAULT_BUILDER_NAME
S2コンテナビルダ
のコンポーネント名を表す定数です。
protected static boolean initialized
protected static boolean configuring
protected static S2Container configurationContainer
protected static S2ContainerFactory.Provider provider
ファクトリプロバイダ
です。
protected static S2ContainerBuilder defaultBuilder
S2コンテナビルダ
です。
protected static ThreadLocal processingPaths
コンストラクタの詳細 |
public S2ContainerFactory()
メソッドの詳細 |
public static S2Container create(String path)
S2コンテナの構築には、 スレッドのコンテキストクラスローダを使用します。
path
- 設定ファイルのパス
EmptyRuntimeException
- path
がnull
または空文字列の場合S2ContainerFactory.Provider.create(String)
public static S2Container create(String path, ClassLoader classLoader)
path
- 設定ファイルのパスclassLoader
- S2コンテナの構築に使用するクラスローダ
EmptyRuntimeException
- path
がnull
または空文字列の場合S2ContainerFactory.Provider.create(String, ClassLoader)
public static S2Container create()
S2ContainerFactory.Provider.create()
public static S2Container include(S2Container parent, String path)
parent
- 親となるS2コンテナpath
- 設定ファイルのパス
S2ContainerFactory.Provider.include(S2Container, String)
public static void configure()
コンフィグレーションdiconファイルとして、 クラスパス上のs2container.dicon
を使用します。
ただし、 システムプロパティorg.seasar.framework.container.factory.config
にdiconファイルが指定されていた場合、
そのdiconファイルを使用します。
public static void configure(String configFile)
configFile
- コンフィグレーションdiconファイルpublic static void destroy()
public static S2Container getConfigurationContainer()
protected static S2ContainerFactory.Provider getProvider()
protected static void setProvider(S2ContainerFactory.Provider p)
p
- ファクトリプロバイダprotected static S2ContainerBuilder getDefaultBuilder()
protected static void setDefaultBuilder(S2ContainerBuilder builder)
builder
- デフォルトS2コンテナビルダprotected static void enter(String path)
もしも既に処理中のパスが指定された場合、 循環インクルードとしてCircularIncludeRuntimeException
をスローします。
path
- 処理中の設定ファイルパスprotected static void leave(String path)
path
- 取り除く設定ファイルのパスprotected static void assertCircularInclude(S2Container container, String path)
container
- 基点となるS2コンテナpath
- 設定ファイルのパスprotected static void assertCircularInclude(S2Container container, String path, LinkedList paths)
container
- 確認対象のS2コンテナpath
- 設定ファイルのパスpaths
- パスのインクルード経路
|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |