Каково различие между Spring BeanFactoryAware и ApplicationContextAware?

Оба могут использоваться для получения бобового экземпляра, но который лучше, чтобы использоваться для реализации?

12
задан skaffman 8 January 2010 в 11:54
поделиться

3 ответа

Да, это похоже на ошибку для меня. В частности, я бы предложил, чтобы когда вы сообщаете об этом на Connect вы ссылались на RFC 1808 , в частности раздел 4 шаг 5, и раздел 5,1 с таким примером:

Base: http://a/b/c/d;p?q#f
Relative: ?y
Absolute: http://a/b/c/d;p?y

Не уверен в лучшем способе его исправления, боюсь: (

-121--4407723-

StartContext является расширенной версией BeanFactory и поэтому предлагает дополнительные функциональные возможности.

Поэтому вопрос о том, следует ли использовать StartContextAware или BeanFactiveAware , сводится к вопросу: Вам явно нужна какая-либо из дополнительных функций StartContext ? Если вы реализуете StartContextAware , в противном случае придерживайтесь BeanFactityAware .

-121--2764382-

Если требуется ссылка на BeanFactory , используйте BeanFactityAware . Если требуется ссылка на StartContext , используйте StartContextAware .

Обратите внимание, что интерфейс StartContext является подклассом BeanFactory и предоставляет дополнительные методы поверх базового интерфейса BeanFactory .

Если необходимо только вызвать getBean () , достаточно BeanFactory .

Также обратите внимание на то, что Spring 2,5 + обеспечивает более удобный способ подключения к BeanFactory или StartContext , например

private @Autowired ApplicationContext appContext;
private @Autowired BeanFactory beanFactory;

Нет необходимости в интерфейсах XyzAware .

29
ответ дан 2 December 2019 в 04:17
поделиться

Требуется ли доступ к дополнительным возможностям, доступным в ApplicationContext? Если да, то вы, конечно, должны использовать ApplicationContextAware . В противном случае будет достаточно BeanFactoryAware .

Помимо многих других вещей, ApplicationContextAware имеет дополнительные методы для проверки бобов, например, BeanFactoryAware . containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeansOfType, которые могут быть вам полезны, но которые недоступны на BeanFactory

Я обычно реализую ApplicationContextAware

.
2
ответ дан 2 December 2019 в 04:17
поделиться

Вам просто нужен gui toolkit (gtk, qt, wx) библиотека изображений (PIL) и 500 часов свободного времени...

-121--4746598-

Да, это похоже на ошибку для меня. В частности, я бы предложил, чтобы когда вы сообщаете об этом на Connect вы ссылались на RFC 1808 , в частности раздел 4 шаг 5, и раздел 5,1 с таким примером:

Base: http://a/b/c/d;p?q#f
Relative: ?y
Absolute: http://a/b/c/d;p?y

Не уверен в лучшем способе его исправления, боюсь: (

-121--4407723-

StartContext является расширенной версией BeanFactory и поэтому предлагает дополнительные функциональные возможности.

Поэтому вопрос о том, следует ли использовать StartContextAware или BeanFactiveAware , сводится к вопросу: Вам явно нужна какая-либо из дополнительных функций StartContext ? Если вы реализуете StartContextAware , в противном случае придерживайтесь BeanFactityAware .

4
ответ дан 2 December 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: