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