接口 ResourceLoaderAware
- 所有超级接口:
Aware
- 所有已知实现类:
AutoConfigurationImportSelector,ClassPathBeanDefinitionScanner,ClassPathScanningCandidateComponentProvider,ClassPathScanningComponentProvider,ImportAutoConfigurationImportSelector,ReloadableResourceBundleMessageSource,ScriptFactoryPostProcessor
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.
A passed-in ResourceLoader can also be checked for the
PatternResourceLoader 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
PathMatchingPatternResourceLoader 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.
- 从以下版本开始:
- 4.0
- 作者:
- Juergen Hoeller, Chris Beams, TODAY 2021/10/7 17:04
- 另请参阅:
-
ApplicationContextAwareResourceResourceLoader
-
方法概要
修饰符和类型方法说明voidsetResourceLoader(cn.taketoday.core.io.ResourceLoader resourceLoader) Set the ResourceLoader that this object runs in.
-
方法详细资料
-
setResourceLoader
void setResourceLoader(cn.taketoday.core.io.ResourceLoader resourceLoader) Set the ResourceLoader that this object runs in.This might be a ResourcePatternResolver, which can be checked through
instanceof ResourcePatternResolver. See also theResourcePatternUtils.getResourcePatternResolvermethod.Invoked after population of normal bean properties but before an init callback like InitializingBean's
afterPropertiesSetor a custom init-method. Invoked before ApplicationContextAware'ssetApplicationContext.- 参数:
resourceLoader- the ResourceLoader object to be used by this object- 另请参阅:
-
PatternResourceLoaderPatternResourceLoader.fromResourceLoader(cn.taketoday.core.io.ResourceLoader)
-