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

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Pseudo URL prefix for loading from the class path: "classpath:".
  • Method Summary

    Modifier and Type
    Method
    Description
    Expose the {link ClassLoader} used by this ResourceLoader.
    getResource(String location)
    Return a Resource handle for the specified resource location.
  • Field Details

    • CLASSPATH_URL_PREFIX

      static final String CLASSPATH_URL_PREFIX
      Pseudo URL prefix for loading from the class path: "classpath:".
      See Also:
  • Method Details

    • getResource

      Resource getResource(String location)
      Return a Resource 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 (never null) see #CLASSPATH_URL_PREFIX see Resource#exists() see Resource#getInputStream()
    • getClassLoader

      @Nullable ClassLoader getClassLoader()
      Expose the {link ClassLoader} used by this ResourceLoader.

      Clients which need to access the ClassLoader directly can do so in a uniform manner with the ResourceLoader, rather than relying on the thread context ClassLoader.

      Returns:
      the ClassLoader (only null if even the system ClassLoader isn't accessible) see org.springframework.util.ClassUtils#getDefaultClassLoader() see org.springframework.util.ClassUtils#forName(String, ClassLoader)