Class ClassPathResource
- All Implemented Interfaces:
InputStreamSource
,Resource
- Direct Known Subclasses:
DefaultResourceLoader.ClassPathContextResource
Resource
implementation for class path resources. Uses either a
given ClassLoader
or a given Class
for loading resources.
Supports resolution as java.io.File
if the class path
resource resides in the file system, but not for resources in a JAR.
Always supports resolution as java.net.URL
.
- Since:
- 28.12.2003
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
-
Constructor Summary
ConstructorDescriptionClassPathResource
(String path) Create a newClassPathResource
forClassLoader
usage.ClassPathResource
(String path, Class<?> clazz) Create a newClassPathResource
forClass
usage.ClassPathResource
(String path, ClassLoader classLoader) Create a newClassPathResource
forClassLoader
usage. -
Method Summary
Modifier and TypeMethodDescriptioncreateRelative
(String relativePath) This implementation creates aClassPathResource
, applying the given path relative to the path used to create this descriptor.boolean
This implementation compares the underlying class path locations and associated class loaders.boolean
exists()
This implementation checks for the resolution of a resource URL.final ClassLoader
Return theClassLoader
that this resource will be obtained from.This implementation returns a description that includes the absolute class path location.This implementation returns the name of the file that this class path resource refers to.This implementation opens anInputStream
for the underlying class path resource, if available.final String
getPath()
Return the absolute path for this resource, as a cleaned resource path within the class path.getURL()
This implementation returns a URL for the underlying class path resource, if available.int
hashCode()
This implementation returns the hash code of the underlying class path location.boolean
This implementation checks for the resolution of a resource URL upfront, then proceeding withAbstractFileResolvingResource
's length check.protected URL
Resolves aURL
for the underlying class path resource.Methods inherited from class org.springframework.core.io.AbstractFileResolvingResource
contentLength, customizeConnection, customizeConnection, getFile, getFile, getFileForLastModifiedCheck, isFile, isFile, lastModified, readableChannel
Methods inherited from class org.springframework.core.io.AbstractResource
getURI, isOpen, toString
-
Constructor Details
-
ClassPathResource
Create a newClassPathResource
forClassLoader
usage.A leading slash will be removed, as the
ClassLoader
resource access methods will not accept it.The default class loader will be used for loading the resource.
- Parameters:
path
- the absolute path within the class path- See Also:
-
ClassPathResource
Create a newClassPathResource
forClassLoader
usage.A leading slash will be removed, as the
ClassLoader
resource access methods will not accept it.If the supplied
ClassLoader
isnull
, the default class loader will be used for loading the resource.- Parameters:
path
- the absolute path within the class pathclassLoader
- the class loader to load the resource with- See Also:
-
ClassPathResource
Create a newClassPathResource
forClass
usage.The path can be relative to the given class, or absolute within the class path via a leading slash.
If the supplied
Class
isnull
, the default class loader will be used for loading the resource.- Parameters:
path
- relative or absolute path within the class pathclazz
- the class to load resources with- See Also:
-
-
Method Details
-
getPath
Return the absolute path for this resource, as a cleaned resource path within the class path.The path returned by this method does not have a leading slash and is suitable for use with
ClassLoader.getResource(String)
. -
getClassLoader
Return theClassLoader
that this resource will be obtained from. -
exists
public boolean exists()This implementation checks for the resolution of a resource URL.- Specified by:
exists
in interfaceResource
- Overrides:
exists
in classAbstractFileResolvingResource
- See Also:
-
isReadable
public boolean isReadable()This implementation checks for the resolution of a resource URL upfront, then proceeding withAbstractFileResolvingResource
's length check.- Specified by:
isReadable
in interfaceResource
- Overrides:
isReadable
in classAbstractFileResolvingResource
- See Also:
-
resolveURL
Resolves aURL
for the underlying class path resource.- Returns:
- the resolved URL, or
null
if not resolvable
-
getInputStream
This implementation opens anInputStream
for the underlying class path resource, if available.- Returns:
- the input stream for the underlying resource (must not be
null
) - Throws:
FileNotFoundException
- if the underlying resource does not existIOException
- if the content stream could not be opened- See Also:
-
getURL
This implementation returns a URL for the underlying class path resource, if available.- Specified by:
getURL
in interfaceResource
- Overrides:
getURL
in classAbstractResource
- Throws:
IOException
- if the resource cannot be resolved as URL, i.e. if the resource is not available as a descriptor- See Also:
-
createRelative
This implementation creates aClassPathResource
, applying the given path relative to the path used to create this descriptor.- Specified by:
createRelative
in interfaceResource
- Overrides:
createRelative
in classAbstractResource
- Parameters:
relativePath
- the relative path (relative to this resource)- Returns:
- the resource handle for the relative resource
- See Also:
-
getFilename
This implementation returns the name of the file that this class path resource refers to.- Specified by:
getFilename
in interfaceResource
- Overrides:
getFilename
in classAbstractResource
- See Also:
-
getDescription
This implementation returns a description that includes the absolute class path location.- See Also:
-
equals
This implementation compares the underlying class path locations and associated class loaders.- Overrides:
equals
in classAbstractResource
- See Also:
-
hashCode
public int hashCode()This implementation returns the hash code of the underlying class path location.- Overrides:
hashCode
in classAbstractResource
- See Also:
-