2014-01-09 54 views
0

我正在使用單元測試。我在故障安全測試報告中看到超過90個彈簧上下文刷新消息。我需要知道多少時間來初始化這些春天背景。 Unitils沒有正確的日誌記錄,所以無法使用框架日誌來跟蹤它。Unitils @SpringApplicationContext - 如何找到初始化spring上下文的時間?

@SpringApplicationContext是測試類的頂部,所以不能去記錄我自己的測試類

寫一個建議或識別類或攔截器也無濟於事,因爲所有這些類在登記spring xml和那些在spring xml中註冊的bean只會在上下文初始化後纔會被加載

編寫一個應用程序監聽器類,我們只能捕獲到ContextRefreshedEvent,也就是在加載的上下文未初始化的時候。

無法捕獲ContextStartedEvent,因爲它是在ConfigurableApplicationContext interface上使用start()方法啓動ApplicationContext時發佈的。而單元動態創建新的ClassPathXmlApplicationContext(..,..);來創建彈簧上下文(class:org.unitils.spring.util.ClassPathXmlApplicationContextFactory)

如何計算彈簧上下文初始化時間?

回答

0

簡單的log4j記錄器呢?在記錄Spring信息日誌時,您可以看到ContexLoader初始化時間。

17點25分48秒信息 - 通過ContextLoader - 根的WebApplicationContext:初始化開始

17時25分53秒信息 - 通過ContextLoader - 根的WebApplicationContext:初始化在5325毫秒完成

+0

正在unitils創建Spring上下文在類'ClassPathXmlApplicationContextFactory'(它來自unitils)下面是代碼解壓縮'public ConfigurableApplicationContext createApplicationContext(List locations){0}返回新的ClassPathXmlApplicationContext(locations.toArray(new String [locations.size()]),false); }和'ClassPathXmlApplicationContext'構造函數(它是從spring開始的),它不是日誌信息。所以,我沒有看到上下文初始化的日誌消息。 – EmeraldTablet

相關問題