public interface ContextLoaderapplication context をロードするための戦略インターフェース。 注意 : Spring 3.1 以降、アノテーション付きクラス、アクティブな Bean 定義プロファイル、アプリケーションコンテキスト初期化子のサポートを提供するために、このインターフェースの代わりに SmartContextLoader を実装してください。
ContextLoader が場所の変更または生成のカスタムサポートを提供する場合、ContextLoader のクライアントは loadContext() を呼び出す前に processLocations() を呼び出す必要があります。processLocations() の結果は loadContext() に提供されます。
具体的な実装では、public の引数なしのコンストラクターを提供する必要があります。
Spring は、以下の標準実装を提供します。
SmartContextLoader, AnnotationConfigContextLoader| 修飾子と型 | メソッドと説明 |
|---|---|
ApplicationContext | loadContext(StringSE... locations) 提供された locations に基づいて新しい context をロードし、コンテキストを構成して、最後に完全にリフレッシュされた状態でコンテキストを返します。 |
StringSE[] | processLocations(ClassSE<?> clazz, StringSE... locations) 指定されたクラスのアプリケーションコンテキストリソースの場所を処理します。 |
StringSE[] processLocations(ClassSE<?> clazz, StringSE... locations)
具体的な実装では、指定された場所を変更したり、新しい場所を生成したり、指定された場所を変更せずに返したりすることができます。
clazz - ロケーションが関連付けられているクラス: 指定されたロケーションの処理方法を決定するために使用されます locations - アプリケーションコンテキストのロードに使用する未変更の場所 (null または空にすることができます)ApplicationContext loadContext(StringSE... locations) throws ExceptionSE
locations に基づいて新しい context をロードし、コンテキストを構成して、最後に完全にリフレッシュされた状態でコンテキストを返します。構成場所は通常、デフォルトではクラスパスリソースと見なされます。
具体的な実装では、この ContextLoader によってロードされた application contexts の Bean ファクトリにアノテーション構成プロセッサーを登録する必要があります。Bean は自動的に、@Autowired、@ResourceSE、@InjectEE を使用したアノテーションベースの依存性注入の候補になります。
ContextLoader によってロードされた ApplicationContext は、それ自体に JVM シャットダウンフックを登録する必要があります。コンテキストが早く閉じられない限り、すべてのコンテキストインスタンスは JVM のシャットダウン時に自動的に閉じられます。これにより、コンテキスト内で Bean が保持する外部リソース(一時ファイルなど)を解放できます。
locations - アプリケーションコンテキストをロードするために使用するリソースの場所 ExceptionSE - コンテキストの読み込みに失敗した場合