# 2.5ResourceLoaderAware接口

ResourceLoaderAware接口是一个特殊的回调，表明该组件需要提供一个ResourceLoader的引用。 下面是ResourceLoaderAware的定义：

```
public interface ResourceLoaderAware {

    void setResourceLoader(ResourceLoader resourceLoader);
}
```

当一个类实现了ResourceLoaderAware并被部署到application context，那么整个类就被识别为ResourceLoaderAware。 application context会去调用setResourceLoader(ResourceLoader)方法，并将其自身作为参数传入（所有的Spring application contexts 都实现了ResourceLoader 接口）。

因为ApplicationContext也是ResourceLoader，bean也可以实现ApplicationContextAware接口，然后直接使用提供的application context来加载资源。但是通常来说还是使用ResourceLoader来管理资源（代码会被转换为ResourceLoader而不是整个的ApplicationContext）。

在应用程序组件中，你也可以使用自动装载ResourceLoader，来替代使用ResourceLoaderAware接口。可以使用传统的constructor或者byType的自动装载模式。但是使用基于注解的自动装载可操作性更好。 在这种情况下，ResourceLoader 被自动注入到ResourceLoader类型的字段，构造函数参数，或者方法参数， 只要他们使用了@Autowired注解。
