在Spring容器中跟踪对象

时间:2010-06-17 08:24:36

标签: java spring

我有一个好奇的问题..是否有可能跟踪Spring容器创建和销毁的对象?我在想的不是记录,而是某种物体生命周期的视觉表现。

3 个答案:

答案 0 :(得分:1)

绝对使用@PostConstruct和@PreDestroy。你如何进行实际跟踪是另一回事。也许是一个Tracker实例,它被注入到你想要跟踪的类中。在依赖注入之后和依赖对象被销毁之前调用的@PostConstruct和@PreDestroy方法中,您可以调用trackerInstance.trackCreation(this)和trackerInstance.trackDestroy(this)或类似方法。

如果使用跟踪器的aspectj和@Autowire依赖注入,您甚至可以跟踪非弹簧管理对象的生命周期,因为aspectj将通过调用new来连接您创建的对象。

答案 1 :(得分:0)

使用IoC events,您可以获得有关何时创建或销毁bean的信息。我不确定,是否有可能在全球范围内做到这一点,因为有更多的应用程序上下文可以使用。

答案 2 :(得分:0)

使用BeanPostProcessor,您可以捕获bean的初始化。有关详细信息,请参阅spring文档中的examples