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, 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 a specific file resource.
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, to be able
to resolve resource patterns into arrays of Resource objects. This will always
work when running in an ApplicationContext (the context interface extends
ResourcePatternResolver). Use a PathMatchingResourcePatternResolver as default.
See also the ResourcePatternUtils.getResourcePatternResolver method.
As 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.
author: Juergen Hoeller since: 10.03.2004 See Also: ApplicationContextAware See Also: org.springframework.beans.factory.InitializingBean See Also: org.springframework.core.io.Resource See Also: org.springframework.core.io.support.ResourcePatternResolver See Also: org.springframework.core.io.support.ResourcePatternUtils.getResourcePatternResolver See Also: org.springframework.core.io.DefaultResourceLoader See Also: org.springframework.core.io.support.PathMatchingResourcePatternResolver See Also: org.springframework.context.support.ReloadableResourceBundleMessageSource |