2012-05-27 4 views
2

У меня есть несколько сконфигурированных бобов в моем весеннем приложении. Все бобы, работающие, как предполагается, работают и выполняют свою работу.Жизненный цикл весенних бобов

Дело в том, что я внедрил BeanPostProcessor и заметил, что его не вызывают для некоторых из bean-компонентов (ни postProcessAfterInitialization, ни postProcessBeforeInitialization). Что может быть причиной ?

+0

Вы имеете в виду это для меня бобы называют, а для других это не так? – mprabhat

+0

Да, на самом деле почти все бобы вызывается, за исключением нескольких бобов –

+3

Как насчет отправки конфигурации для этих бобах? –

ответ

1

Я не знаю, если это уместно, но справочное руководство говорит:

BeanPostProcessors и АОП авто-проксирование

Классы, которые реализуют интерфейс BeanPostProcessor специальные, и т.д. они обрабатываются по-разному контейнером. Все BeanPostProcessors и их напрямую связанные bean-компоненты будут , созданные при запуске, в качестве части специальной фазы запуска кода приложения ApplicationContext, то все эти BeanPostProcessors будут зарегистрированными в отсортированном виде и будут применяться ко всем дополнительным компонентам. Поскольку АОП автоматического проксирование реализован как сам BeanPostProcessor, не BeanPostProcessors или непосредственно упоминаться бобы не имеют право на авто-проксирование (и, следовательно, не будет иметь аспекты «тканых» в них.

Для любого такого боба, вы должны увидеть сообщение Информация о журнале: «Bean„Foo“является не имеет права на получение обрабатывается всеми BeanPostProcessors (для например: не имеет право на автоматическое проксирование)»

Так, может быть, ваши бобы быть проксированном. .

+0

Вот и все! Спасибо за этот комментарий. :) Я могу просмотреть информационный журнал с сообщением, как вы упомянули. –

+0

Если да, не забудьте отметить этот ответ как правильный, то :) – Luciano