public class DefaultResourceLoader extends Object implements ResourceLoader
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.
FileSystemResourceLoader
,
ClassPathXmlApplicationContext
CLASSPATH_URL_PREFIX
Constructor and Description |
---|
DefaultResourceLoader()
Create a new DefaultResourceLoader.
|
DefaultResourceLoader(ClassLoader classLoader)
Create a new DefaultResourceLoader.
|
Modifier and Type | Method and Description |
---|---|
ClassLoader |
getClassLoader()
Return the ClassLoader to load class path resources with.
|
Resource |
getResource(String location)
Return a Resource handle for the specified resource.
|
protected Resource |
getResourceByPath(String path)
Return a Resource handle for the resource at the given path.
|
void |
setClassLoader(ClassLoader classLoader)
Specify the ClassLoader to load class path resources with, or
null
for using the thread context class loader at the time of actual resource access. |
public DefaultResourceLoader()
ClassLoader access will happen using the thread context class loader at the time of this ResourceLoader's initialization.
Thread.getContextClassLoader()
public DefaultResourceLoader(ClassLoader classLoader)
classLoader
- the ClassLoader to load class path resources with, or null
for using the thread context class loader at the time of actual resource accesspublic void setClassLoader(ClassLoader classLoader)
null
for 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 this ResourceLoader's initialization.
public ClassLoader getClassLoader()
Will get passed to ClassPathResource's constructor for all ClassPathResource objects created by this resource loader.
getClassLoader
in interface ResourceLoader
null
if even the system
ClassLoader isn't accessible)ClassPathResource
public Resource getResource(String location)
ResourceLoader
InputStreamSource.getInputStream()
calls.
Note that a Resource handle does not imply an existing resource;
you need to invoke Resource.exists()
to check for existence.
getResource
in interface ResourceLoader
location
- the resource locationResourceLoader.CLASSPATH_URL_PREFIX
,
Resource.exists()
,
InputStreamSource.getInputStream()
protected Resource getResourceByPath(String 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.
path
- the path to the resourceClassPathResource
,
FileSystemXmlApplicationContext.getResourceByPath(java.lang.String)
,
AbstractRefreshableWebApplicationContext.getResourceByPath(java.lang.String)