org.springframework.core.io

## Interface ResourceLoader

- All Known Subinterfaces:
    ApplicationContext, ConfigurableApplicationContext, ConfigurablePortletApplicationContext, ConfigurableWebApplicationContext, ResourcePatternResolver, WebApplicationContext
  All Known Implementing Classes:
    AbstractApplicationContext, AbstractRefreshableApplicationContext, AbstractRefreshableConfigApplicationContext, AbstractRefreshablePortletApplicationContext, AbstractRefreshableWebApplicationContext, AbstractXmlApplicationContext, AnnotationConfigApplicationContext, AnnotationConfigWebApplicationContext, ClassPathXmlApplicationContext, ClassRelativeResourceLoader, DefaultResourceLoader, FileSystemResourceLoader, FileSystemXmlApplicationContext, GenericApplicationContext, GenericGroovyApplicationContext, GenericWebApplicationContext, GenericXmlApplicationContext, PathMatchingResourcePatternResolver, PortletContextResourceLoader, PortletContextResourcePatternResolver, ResourceAdapterApplicationContext, ServletContextResourceLoader, ServletContextResourcePatternResolver, StaticApplicationContext, StaticPortletApplicationContext, StaticWebApplicationContext, XmlPortletApplicationContext, XmlWebApplicationContext

      public interface ResourceLoader

  Strategy interface for loading resources (e.. class path or file system resources). An `ApplicationContext` is required to provide this functionality, plus extended `ResourcePatternResolver` support.

  `DefaultResourceLoader` is a standalone implementation that is usable outside an ApplicationContext, also used by `ResourceEditor`.

  Bean properties of type Resource and Resource array 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 Also:
    `Resource`, `ResourcePatternResolver`, `ApplicationContext`, `ResourceLoaderAware`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CLASSPATH_URL_PREFIX` Pseudo URL prefix for loading from the class path: "classpath:"

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `ClassLoader` | `getClassLoader()` Expose the ClassLoader used by this ResourceLoader.
    `Resource` | `getResource(String location)` Return a Resource handle for the specified resource.

- - ### Field Detail

    - #### CLASSPATH_URL_PREFIX

          static final String CLASSPATH_URL_PREFIX

      Pseudo URL prefix for loading from the class path: "classpath:"
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getResource

          Resource getResource(String location)

      Return a Resource handle for the specified resource. 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 Resource handle does not imply an existing resource; you need to invoke `Resource.exists()` to check for existence.

      Parameters:
        `location` - the resource location
      Returns:
        a corresponding Resource handle
      See Also:
        `CLASSPATH_URL_PREFIX`, `Resource.exists()`, `InputStreamSource.getInputStream()`

    - #### getClassLoader

          ClassLoader getClassLoader()

      Expose the 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 (never `null`)