2014-01-09 2 views
0

테스트 용으로 unitils를 사용하고 있습니다. 페일 세이프 테스트 보고서에 90 개 이상의 스프링 컨텍스트 새로 고침 메시지가 표시됩니다. 이러한 봄 문맥을 초기화하는 데 얼마나 많은 시간이 소요되는지 알아야합니다. Unitils에 적절한 로깅이 없으므로 프레임 워크 로그로이를 추적 할 수 없습니다. Unitils @SpringApplicationContext - 스프링 컨텍스트를 초기화하는 데 걸리는 시간을 찾는 방법?

@SpringApplicationContext

는 테스트 클래스의 상단에, 그래서 모든 클래스로, 도움이되지 않습니다 조언이나 인식 클래스 나 인터셉터를 쓰는 내 자신의 테스트 클래스

에서 로거 갈 수없는 것은에 등록해야합니다 spring xml과 spring xml에 등록 된 빈들은 컨텍스트가 초기화 된 후에 만로드 될 것이다.

로드 된 컨텍스트가 초기화되지 않은 경우 애플리케이션 청취자 클래스를 작성하면 ContextRefreshedEvent 만 잡을 수있다.

ConfigurableApplicationContext interfacestart() 메서드를 사용하여 ApplicationContext를 시작한 경우 게시되므로 ContextStartedEvent을 catch 할 수 없습니다. unitils는 동적으로 새로운 ClassPathXmlApplicationContext(..,..);을 생성하여 스프링 컨텍스트를 만듭니다. (class:org.unitils.spring.util.ClassPathXmlApplicationContextFactory)

스프링 컨텍스트 초기화 시간은 어떻게 계산합니까?

답변

0

간단한 log4j 로거는 어떻게됩니까? Spring 정보 로그를 로깅 할 때 ContextLoader 초기화 시간을 볼 수 있습니다.

17시 25분 48초는 정보 - ContextLoader를 - 루트의 WebApplicationContext : - ContextLoader를 - 초기화

17시 25분 53초 정보를 시작 루트의 WebApplicationContext : 초기화

+0

스프링 컨텍스트가 unitils에 의해 생성되는 5325 밀리 완료 아래의 코드는'public ConfigurableApplicationContext createApplicationContext (리스트 위치)입니다. 새로운 ClassPathXmlApplicationContext (locations.toArray (new String [locations.size()]), false)를 반환합니다. }'ClassPathXmlApplicationContext' 생성자 (봄부터)에서, ther은 로그 정보가 아닙니다. 그래서, 컨텍스트 초기화에 대한 로그 메시지가 표시되지 않습니다. – EmeraldTablet