Помимо ApplicationContextAware и BeanNameAware, Spring предлагает широкий спектр Aware интерфейсов обратного вызова, которые позволяют бинам указывать контейнеру, что им требуется определенная инфраструктурная зависимость. Как правило, имя указывает на тип зависимости. В следующей таблице приведены наиболее важные Aware интерфейсы:

Имя Внедряемая зависимость

ApplicationContextAware

Объявление ApplicationContext.

ApplicationEventPublisherAware

Публикатор событий вложенного ApplicationContext.

BeanClassLoaderAware

Загрузчик классов, используемый для загрузки классов бинов.

BeanFactoryAware

Объявление BeanFactory.

BeanNameAware

Имя объявляющего бина.

LoadTimeWeaverAware

Определенный инструмент связывания для обработки определения класса во время загрузки.

MessageSourceAware

Сконфигурированная стратегия распознавания сообщений (с поддержкой параметризации и интернационализации).

NotificationPublisherAware

Публикатор уведомлений Spring JMX.

ResourceLoaderAware

Сконфигурированный загрузчик для низкоуровневого доступа к ресурсам.

ServletConfigAware

Текущий ServletConfig, в котором работает контейнер. Действует только в контексте ориентированного на использование в веб-среде (web-aware) ApplicationContext фреймворка Spring.

ServletContextAware

Текущий ServletContext, в котором работает контейнер. Действует только в контексте ориентированного на использование в веб-среде (web-aware) ApplicationContext фреймворка Spring.

Обратите внимание, что использование этих интерфейсов связывает ваш код с Spring API и не соответствует стилю инверсии управления. В результате мы рекомендуем использовать их для инфраструктурных бинов, которым необходим программный доступ к контейнеру.