| Interface | Description | 
|---|---|
| ExternalizedComponentDefinitionLoader | 
 外部化されたコンポーネント定義をロードするインタフェース。
 
 外部化されたコンポーネント定義には、設定ファイル以外の例えばシステムプロパティや
 OS環境変数などで指定された値などが該当する。 
 | 
| Class | Description | 
|---|---|
| AnnotationComponentDefinitionLoader | 
 アノテーションが付与されたクラスをコンポーネントとして読み込む 
ExternalizedComponentDefinitionLoader。
 
 このローダーはSystemRepositoryComponentが付与されたクラスをコンポーネントとして読み込む。
 読み込む対象となるパッケージはAnnotationComponentDefinitionLoader.getBasePackage()で取得する。
 ローダーの使用時にサブクラスを作成し、オーバーライドすること。 | 
| CompositeExternalizedLoader | 
 複数の 
ExternalizedComponentDefinitionLoaderを組み合わせたローダー。
 
 このクラスは、コンストラクタで指定したローダーのリストを順番に実行していき、
 各ローダーが読み込んだ結果を1つにマージして返却する。
 
 既に読み込まれているコンポーネントと同じ名前のコンポーネントが読み込まれた場合は、
 後から読み込まれたコンポーネントで上書きされる。 | 
| OsEnvironmentVariableExternalizedLoader | 
 OS環境変数をコンポーネント定義として読み込む 
ExternalizedComponentDefinitionLoader。
 
 このローダーは、読み込み済みのコンポーネントの名前を元に、OS環境変数を検索する。このとき、OS環境変数で使用できる文字種に制限があることを踏まえて、コンポーネント名を 次のように変換してから検索する。 ドット( ".")とハイフン("-")をアンダーバー("_")に置換する
   小文字を大文字に変換する(String.toUpperCase())
 
 
 つまり、"foo-bar.fizz-buzz"という名前のコンポーネントが存在した場合は、
 "FOO_BAR_FIZZ_BUZZ"という名前でOS環境変数が検索されることになる。
 
 変換後の名前でOS環境変数が見つかった場合は、その値をStringのコンポーネントとして読み込む。 | 
| SystemPropertyExternalizedLoader | 
 システムプロパティをコンポーネント定義として読み込む 
ExternalizedComponentDefinitionLoader。
 
 このローダーは、システムプロパティで指定されている値をすべてStringのコンポーネントとしてロードする。 |