2010-06-17 87 views
1

我有一個問題出於好奇..是否有可能跟蹤由Spring容器創建和銷燬的對象?我所想的不是記錄,而是某種對象生命週期的視覺表現。Spring容器中的跟蹤對象

+0

所有彈簧管理對象,或只有特定的? – skaffman 2010-06-17 08:53:57

+0

所有彈簧管理對象..基本上,它將是很好的追蹤項目特定(一個包),並避免任何有趣的框架相關對象 – 2010-06-17 08:57:04

回答

1

絕對使用@PostConstruct和@PreDestroy。如何去實際跟蹤是另一回事。也許一個Tracker實例被注入到你想跟蹤的類中。在@PostConstruct和@PreDestroy方法中,分別在依賴注入和依賴對象被破壞之前調用,然後可以調用trackerInstance.trackCreation(this)和trackerInstance.trackDestroy(this)或類似方法。

如果您使用跟蹤器的aspectj和@Autowire依賴項注入,您甚至可以跟蹤非彈簧管理對象的生命週期,因爲aspectj會將通過調用創建的對象連接到新的對象。

0

使用IoC events您可以獲取有關您的bean何時創建或銷燬的信息。我不確定是否可以在全球範圍內使用,因爲可以使用更多的應用程序上下文。

+0

..讓我看看,謝謝 – 2010-06-17 08:58:14

0

使用BeanPostProcessor可以捕獲bean的初始化。有關詳細信息,請參閱春季文檔中的examples

+0

可悲的是,你不能跟蹤整個生命週期與這些,只是初始化。 – skaffman 2010-06-21 12:04:21