public class DefaultResourceLoader extends ObjectSE implements ResourceLoader
ResourceLoader
インターフェースのデフォルト実装。ResourceEditor
によって使用され、AbstractApplicationContext
の基本クラスとして機能します。スタンドアロンでも使用できます。
場所の値が URL の場合は UrlResource
を返し、URL 以外のパスまたは "classpath:" 疑似 URL の場合は ClassPathResource
を返します。
FileSystemResourceLoader
, ClassPathXmlApplicationContext
修飾子と型 | クラスと説明 |
---|---|
protected static class | DefaultResourceLoader.ClassPathContextResource ContextResource インターフェースを実装することにより、コンテキスト相対パスを明示的に表現する ClassPathResource。 |
CLASSPATH_URL_PREFIX
コンストラクターと説明 |
---|
DefaultResourceLoader() 新しい DefaultResourceLoader を作成します。 |
DefaultResourceLoader(ClassLoaderSE classLoader) 新しい DefaultResourceLoader を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | addProtocolResolver(ProtocolResolver resolver) 指定されたリゾルバーをこのリソースローダーに登録して、追加のプロトコルを処理できるようにします。 |
void | clearResourceCaches() このリソースローダーのすべてのリソースキャッシュをクリアします。 |
ClassLoaderSE | getClassLoader() クラスパスリソースをロードする ClassLoader を返します。 |
CollectionSE<ProtocolResolver> | getProtocolResolvers() 現在登録されているプロトコルリゾルバーのコレクションを返し、イントロスペクションと変更を許可します。 |
Resource | getResource(StringSE location) 指定されたリソースの場所の Resource ハンドルを返します。 |
protected Resource | getResourceByPath(StringSE path) 指定されたパスにあるリソースのリソースハンドルを返します。 |
<T> MapSE<Resource,T> | getResourceCache(ClassSE<T> valueType) Resource をキーとして、指定された値型のキャッシュを取得します。 |
void | setClassLoader(ClassLoaderSE classLoader) クラスパスリソースをロードする ClassLoader、または実際のリソースアクセス時にスレッドコンテキストクラスローダーを使用するための null を指定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public DefaultResourceLoader()
ClassLoader アクセスは、実際のリソースアクセス時にスレッドコンテキストクラスローダーを使用して行われます(5.3 以降)。さらに制御するには、特定の ClassLoader を DefaultResourceLoader(ClassLoader)
に渡します。
public DefaultResourceLoader(@Nullable ClassLoaderSE classLoader)
classLoader
- クラスパスリソースをロードする ClassLoader、または実際のリソースアクセス時にスレッドコンテキストクラスローダーを使用するための null
public void setClassLoader(@Nullable ClassLoaderSE classLoader)
null
を指定します。デフォルトでは、ClassLoader アクセスは、実際のリソースアクセス時にスレッドコンテキストクラスローダーを使用して行われます(5.3 以降)。
@Nullable public ClassLoaderSE getClassLoader()
このリソースローダーによって作成されたすべての ClassPathResource オブジェクトの ClassPathResource のコンストラクターに渡されます。
ResourceLoader
の getClassLoader
ClassLoader
(システム ClassLoader
にさえアクセスできない場合は、null
のみ)ClassPathResource
public void addProtocolResolver(ProtocolResolver resolver)
このようなリゾルバーは、このローダーの標準の解決ルールより先に呼び出されます。デフォルトのルールも上書きする可能性があります。
getProtocolResolvers()
public CollectionSE<ProtocolResolver> getProtocolResolvers()
addProtocolResolver(ProtocolResolver)
public <T> MapSE<Resource,T> getResourceCache(ClassSE<T> valueType)
Resource
をキーとして、指定された値型のキャッシュを取得します。valueType
- 値の型。ASM MetadataReader
ResourceLoader
レベルで共有されるキャッシュ Map
SEpublic void clearResourceCaches()
getResourceCache(java.lang.Class<T>)
public Resource getResource(StringSE location)
ResourceLoader
Resource
ハンドルを返します。 ハンドルは常に再利用可能なリソース記述子であり、複数の InputStreamSource.getInputStream()
呼び出しを許可する必要があります。
Resource
ハンドルは、既存のリソースを意味するものではないことに注意してください。存在を確認するには、Resource.exists()
を呼び出す必要があります。
ResourceLoader
の getResource
location
- リソースの場所 Resource
ハンドル (非 null
)ResourceLoader.CLASSPATH_URL_PREFIX
, Resource.exists()
, InputStreamSource.getInputStream()
protected Resource getResourceByPath(StringSE path)
デフォルトの実装では、クラスパスの場所がサポートされています。これはスタンドアロンの実装に適しているはずですが、オーバーライドできます。サーブレットコンテナーを対象とした実装の場合。
path
- リソースへのパス ClassPathResource
, FileSystemXmlApplicationContext.getResourceByPath(java.lang.String)
, AbstractRefreshableWebApplicationContext.getResourceByPath(java.lang.String)