org.springframework.context

## Interface ResourceLoaderAware

- All Superinterfaces:
    Aware
  All Known Implementing Classes:
    ClassPathBeanDefinitionScanner, ClassPathScanningCandidateComponentProvider, ConfigurationClassPostProcessor, DefaultPersistenceUnitManager, FreeMarkerConfigurationFactoryBean, FreeMarkerConfigurer, FreeMarkerConfigurer, LocalContainerEntityManagerFactoryBean, LocalSessionFactoryBean, ReloadableResourceBundleMessageSource, SchedulerAccessor, SchedulerAccessorBean, SchedulerFactoryBean, ScriptFactoryPostProcessor, SortedResourcesFactoryBean

      public interface ResourceLoaderAware
      extends Aware

  Interface to be implemented by any object that wishes to be notified of the `ResourceLoader` (typically the ApplicationContext) that it runs in. This is an alternative to a full `ApplicationContext` dependency via the `ApplicationContextAware` interface.

  Note that `Resource` dependencies can also be exposed as bean properties of type `Resource` or `Resource[]`, populated via Strings with automatic type conversion by the bean factory. This removes the need for implementing any callback interface just for the purpose of accessing specific file resources.

  You typically need a `ResourceLoader` when your application object has to access a variety of file resources whose names are calculated. A good strategy is to make the object use a `DefaultResourceLoader` but still implement `ResourceLoaderAware` to allow for overriding when running in an `ApplicationContext`. See `ReloadableResourceBundleMessageSource` for an example.

  A passed-in `ResourceLoader` can also be checked for the `ResourcePatternResolver` interface and cast accordingly, in order to resolve resource patterns into arrays of `Resource` objects. This will always work when running in an ApplicationContext (since the context interface extends the ResourcePatternResolver interface). Use a `PathMatchingResourcePatternResolver` as default; see also the `ResourcePatternUtils.getResourcePatternResolver` method.

  As an alternative to a `ResourcePatternResolver` dependency, consider exposing bean properties of type `Resource[]` array, populated via pattern Strings with automatic type conversion by the bean factory at binding time.

  Since:
    10.03.2004
  Author:
    Juergen Hoeller, Chris Beams
  See Also:
    `ApplicationContextAware`, `Resource`, `ResourceLoader`, `ResourcePatternResolver`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `setResourceLoader(ResourceLoader resourceLoader)` Set the ResourceLoader that this object runs in.

- - ### Method Detail

    - #### setResourceLoader

          void setResourceLoader(ResourceLoader resourceLoader)

      Set the ResourceLoader that this object runs in.

      This might be a ResourcePatternResolver, which can be checked through `instanceof ResourcePatternResolver`. See also the `ResourcePatternUtils.getResourcePatternResolver` method.

      Invoked after population of normal bean properties but before an init callback like InitializingBean's `afterPropertiesSet` or a custom init-method. Invoked before ApplicationContextAware's `setApplicationContext`.

      Parameters:
        `resourceLoader` - the ResourceLoader object to be used by this object
      See Also:
        `ResourcePatternResolver`, `ResourcePatternUtils.getResourcePatternResolver(org.springframework.core.io.ResourceLoader)`