Class DefaultResourceLoader
- All Implemented Interfaces:
- ResourceLoader
- Direct Known Subclasses:
- AbstractApplicationContext,- ClassRelativeResourceLoader,- FileSystemResourceLoader,- ServletContextResourceLoader
ResourceLoader interface.
 Used by ResourceEditor, and serves as base class for
 AbstractApplicationContext.
 Can also be used standalone.
 
Will return a UrlResource if the location value is a URL,
 and a ClassPathResource if it is a non-URL path or a
 "classpath:" pseudo-URL.
- Since:
- 10.03.2004
- Author:
- Juergen Hoeller
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static classClassPathResource that explicitly expresses a context-relative path through implementing the ContextResource interface.
- 
Field SummaryFields inherited from interface org.springframework.core.io.ResourceLoaderCLASSPATH_URL_PREFIX
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a new DefaultResourceLoader.DefaultResourceLoader(ClassLoader classLoader) Create a new DefaultResourceLoader.
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddProtocolResolver(ProtocolResolver resolver) Register the given resolver with this resource loader, allowing for additional protocols to be handled.voidClear all resource caches in this resource loader.Return the ClassLoader to load class path resources with.Return the collection of currently registered protocol resolvers, allowing for introspection as well as modification.getResource(String location) Return aResourcehandle for the specified resource location.protected ResourcegetResourceByPath(String path) Return a Resource handle for the resource at the given path.getResourceCache(Class<T> valueType) Obtain a cache for the given value type, keyed byResource.voidsetClassLoader(ClassLoader classLoader) Specify the ClassLoader to load class path resources with, ornullfor using the thread context class loader at the time of actual resource access.
- 
Constructor Details- 
DefaultResourceLoaderpublic DefaultResourceLoader()Create a new DefaultResourceLoader.ClassLoader access will happen using the thread context class loader at the time of actual resource access (since 5.3). For more control, pass a specific ClassLoader to DefaultResourceLoader(ClassLoader).- See Also:
 
- 
DefaultResourceLoaderCreate a new DefaultResourceLoader.- Parameters:
- classLoader- the ClassLoader to load class path resources with, or- nullfor using the thread context class loader at the time of actual resource access
 
 
- 
- 
Method Details- 
setClassLoaderSpecify the ClassLoader to load class path resources with, ornullfor using the thread context class loader at the time of actual resource access.The default is that ClassLoader access will happen using the thread context class loader at the time of actual resource access (since 5.3). 
- 
getClassLoaderReturn the ClassLoader to load class path resources with.Will get passed to ClassPathResource's constructor for all ClassPathResource objects created by this resource loader. - Specified by:
- getClassLoaderin interface- ResourceLoader
- Returns:
- the ClassLoader(onlynullif even the systemClassLoaderisn't accessible)
- See Also:
 
- 
addProtocolResolverRegister the given resolver with this resource loader, allowing for additional protocols to be handled.Any such resolver will be invoked ahead of this loader's standard resolution rules. It may therefore also override any default rules. - Since:
- 4.3
- See Also:
 
- 
getProtocolResolversReturn the collection of currently registered protocol resolvers, allowing for introspection as well as modification.- Since:
- 4.3
- See Also:
 
- 
getResourceCacheObtain a cache for the given value type, keyed byResource.- Parameters:
- valueType- the value type, e.g. an ASM- MetadataReader
- Returns:
- the cache Map, shared at theResourceLoaderlevel
- Since:
- 5.0
 
- 
clearResourceCachespublic void clearResourceCaches()Clear all resource caches in this resource loader.- Since:
- 5.0
- See Also:
 
- 
getResourceDescription copied from interface:ResourceLoaderReturn aResourcehandle for the specified resource location.The handle should always be a reusable resource descriptor, allowing for multiple InputStreamSource.getInputStream()calls.- Must support fully qualified URLs, e.g. "file:C:/test.dat".
- Must support classpath pseudo-URLs, e.g. "classpath:test.dat".
- Should support relative file paths, e.g. "WEB-INF/test.dat". (This will be implementation-specific, typically provided by an ApplicationContext implementation.)
 Note that a Resourcehandle does not imply an existing resource; you need to invokeResource.exists()to check for existence.- Specified by:
- getResourcein interface- ResourceLoader
- Parameters:
- location- the resource location
- Returns:
- a corresponding Resourcehandle (nevernull)
- See Also:
 
- 
getResourceByPathReturn a Resource handle for the resource at the given path.The default implementation supports class path locations. This should be appropriate for standalone implementations but can be overridden, e.g. for implementations targeted at a Servlet container. - Parameters:
- path- the path to the resource
- Returns:
- the corresponding Resource handle
- See Also:
 
 
-