2010-06-17 3 views
1

У меня вопрос из любопытства .. Можно ли отслеживать объект, созданный и уничтоженный контейнером Spring? Я думаю, что это не регистрация, а какое-то визуальное представление жизненного цикла объектов.Отслеживающий объект весной Контейнер

+0

Все управляемые весной объекты, или только конкретные? – skaffman

+0

все пружинные управляемые объекты .. в основном было бы здорово отслеживать конкретный проект (пакет) и избегать любых связанных с каркасом объектов –

ответ

1

определенно используйте @PostConstruct и @PreDestroy. То, как вы идете по поводу отслеживания, - другое дело. Возможно, экземпляр Tracker, который вводится в классы, которые вы хотите отслеживать. В методах @PostConstruct и @PreDestroy, которые вызывается после инъекции зависимостей и до уничтожения зависимых объектов, соответственно, вы можете вызвать trackerInstance.trackCreation (this) и trackerInstance.trackDestroy (это) или аналогичные.

Если вы используете инъекцию зависимостей aspectj и @Autowire Tracker, вы можете даже отслеживать жизненный цикл не связанных с весной управляемых объектов, так как aspectj подключит объекты, созданные с помощью вызова к новому.

0

Используя IoC events, вы можете получить информацию о том, когда ваш компонент создан или уничтожен. Я не уверен, если это возможно сделать глобально, так как есть больше контекстов приложений, которые можно использовать.

+0

, что интересно .. дайте мне посмотреть, спасибо –

0

Использование BeanPostProcessor вы можете поймать инициализацию компонентов. См. examples в весенних документах.

+0

К сожалению, вы не можете отслеживать полный жизненный цикл с ними просто инициализация. – skaffman

Смежные вопросы