ResourceLoader (Grails 3.3.2)
Date: 2017-11-24

Package: org.grails.io.support

## [Java] 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.

  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.

  Authors:
    Juergen Hoeller
  Since:
    10.03.2004

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `java.lang.String` | `CLASSPATH_URL_PREFIX` | Pseudo URL prefix for loading from the class path: "classpath:"

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `java.lang.ClassLoader` | `getClassLoader()` Expose the ClassLoader used by this ResourceLoader.
    `` | `Resource` | `getResource(java.lang.String location)` Return a Resource handle for the specified resource.

- - ### Field Detail

    - #### public java.lang.String CLASSPATH_URL_PREFIX

      Pseudo URL prefix for loading from the class path: "classpath:"

  - ### Method Detail

    - #### public java.lang.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`)

    - #### public Resource getResource(java.lang.String location)

      Return a Resource handle for the specified resource. The handle should always be a reusable resource descriptor, allowing for multiple 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 Resource#exists to check for existence.

      Parameters:
        `location` - the resource location
      Returns:
        a corresponding Resource handle
      See Also:
        CLASSPATH_URL_PREFIX