Інтерфейс ResourceLoaderAware — це спеціальний інтерфейс зворотного виклику, що ідентифікує компоненти, які приймають посилання на ResourceLoader. У наступному лістингу показано визначення інтерфейсу ResourceLoaderAware:

public interface ResourceLoaderAware {
    void setResourceLoader(ResourceLoader resourceLoader);
}

Якщо клас реалізує ResourceLoaderAware і розгортається в контексті програми (як керований бін Spring), він розпізнається як ResourceLoaderAware контекстом програми. Потім контекст програми звертається до setResourceLoader(ResourceLoader), надаючи себе як аргумент (пам'ятай, що всі контексти додатків у Spring реалізують інтерфейс ResourceLoader).

Оскільки ApplicationContext є ResourceLoader, бін може також реалізувати інтерфейс ApplicationContextAware і використовувати наданий контекст програми безпосередньо для завантаження ресурсів. Однак загалом краще використовувати спеціалізований інтерфейс ResourceLoader, якщо це все, що потрібно. Код буде пов'язаний лише з інтерфейсом завантаження ресурсів (який можна вважати службовим інтерфейсом), а не з усім інтерфейсом Spring ApplicationContext.

У компонентах програми також можна покластися на автоматичне виявлення та зв'язування ResourceLoader як альтернативу реалізації інтерфейсу ResourceLoaderAware. Традиційні режими автоматичного виявлення та зв'язування constructor та byType здатні надавати ResourceLoader або для аргументу конструктора, або, відповідно, для параметра сетера. Для більшої гнучкості (включно з можливістю автоматичного виявлення та зв'язування полів і методів з кількома параметрами) розглянемо можливість використання функцій автоматичного виявлення та зв'язування на основі анотацій. У цьому випадку ResourceLoader автоматично виявляється і зв'язується з полем, аргументом конструктора або параметром методу, який очікує на тип ResourceLoader, якщо поле, конструктор або метод містять анотацію @Autowired.

Щоб завантажити один або кілька об'єктів Resource для шляху до ресурсу, який містить знаки підстановки або використовує спеціальний префікс ресурсу classpath*: замість ResourceLoader з компонентами програми слід зв'язати екземпляр ResourcePatternResolver.