Interface ResourceLoader
- All Known Subinterfaces:
ResourcePatternResolver
- All Known Implementing Classes:
DefaultResourceLoader
,PathMatchingResourcePatternResolver
public interface ResourceLoader
Strategy interface for loading resources (e.g., class path or file system
resources). An {link org.springframework.context.ApplicationContext}
is required to provide this functionality plus extended
{link org.springframework.core.io.support.ResourcePatternResolver} support.
{link DefaultResourceLoader} is a standalone implementation that is usable outside an ApplicationContext and is also used by {link ResourceEditor}.
Bean properties of type Resource
and Resource[]
can be populated
from Strings when running in an ApplicationContext, using the particular
context's resource loading strategy.
- Since:
- 10.03.2004
- Author:
- Juergen Hoeller see Resource see org.springframework.core.io.support.ResourcePatternResolver see org.springframework.context.ApplicationContext see org.springframework.context.ResourceLoaderAware
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Pseudo URL prefix for loading from the class path: "classpath:". -
Method Summary
Modifier and TypeMethodDescriptionExpose the {link ClassLoader} used by thisResourceLoader
.getResource
(String location) Return aResource
handle for the specified resource location.
-
Field Details
-
CLASSPATH_URL_PREFIX
Pseudo URL prefix for loading from the class path: "classpath:".- See Also:
-
-
Method Details
-
getResource
Return aResource
handle for the specified resource location.The handle should always be a reusable resource descriptor, allowing for multiple {link Resource#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
Resource
handle does not imply an existing resource; you need to invoke {link Resource#exists} to check for existence.- Parameters:
location
- the resource location- Returns:
- a corresponding
Resource
handle (nevernull
) see #CLASSPATH_URL_PREFIX see Resource#exists() see Resource#getInputStream()
-
getClassLoader
Expose the {link ClassLoader} used by thisResourceLoader
.Clients which need to access the
ClassLoader
directly can do so in a uniform manner with theResourceLoader
, rather than relying on the thread contextClassLoader
.- Returns:
- the
ClassLoader
(onlynull
if even the systemClassLoader
isn't accessible) see org.springframework.util.ClassUtils#getDefaultClassLoader() see org.springframework.util.ClassUtils#forName(String, ClassLoader)
-