이 예제에서는 staticField 데이터 항목 및 staticInitializer 프로브 단편 사용을 설명합니다.
이 예제에서는 클래스 인스턴스를 작성할 시기를 프로브에서 계속 추적합니다. 해당 클래스의 이전 인스턴스가
작성되고 2초 이상 지난 후 인스턴스가 작성되면 프로브가 로그 메시지를 씁니다.
프로브는 다음을 수행합니다.
- 프로브는 static 필드 정의를 사용하여 모든 프로브된 클래스에서 Date 유형의
static 필드를 작성합니다. 이 static 필드는 new Date();를 호출하여 초기화합니다.
- staticInitializer 단편에서 프로브는 프로브된 클래스의 Date 인스턴스를
로드할 때 시간을 "0"(1970년 1월)으로 설정합니다.
- entry 단편에서 프로브는 이전 갱신 시기를 확인하는지
점검한 후, 2초 전에 갱신을 수행한 경우 보고서를 발행합니다. 대상
규칙 때문에 entry 단편은 생성자에서만 실행됩니다.
- 마지막으로 프로브는 Date 인스턴스의 값을 "now"로 갱신합니다.
프로브는 static 필드 정의를 사용하여 모든 프로브된 클래스에서
새 static 필드를 작성합니다. 클래스 범위의 단편을 사용하여 Date
필드를 선언하면 프로브를 적용하는 클래스 수에 상관 없이 프로브 단편을
보유하는 생성된 클래스에 단일 Date 인스턴스가 표시됩니다.
프로브된 각 클래스의 인스턴스 작성 간의 지연을 추적하는 대신, 프로브된 모든 클래스의 인스턴스 작성 간의
시간 지연을 추적하려는 경우 이를 수행할 수 있습니다.
Probekit 편집기에서 이 프로브는 다음 항목으로 정의됩니다.
- static 필드의
완전한 Java 유형. 트리 분할창에서 프로브를 마우스 오른쪽
단추로 클릭한 후 를
클릭하여 이 값을 입력하십시오.
java.util.Date
- 대상. 트리 분할창에서 대상을
선택한 후 편집을 클릭하여 이 값을 입력하십시오.
- 대상 유형: include
- 패키지: com.sample*(실제
패키지 이름 사용)
- 클래스: *
- 메소드: <init>
- 메소드 서명: *
- 대상. 편집 분할창에서 추가를
클린한 후 편집을 클릭하여 이 값을 입력하십시오.
- 대상 유형: exclude
- 패키지: *
- 클래스: *
- 메소드: *
- 메소드 서명: *
- 단편. 트리 분할창에서
단편을 선택하여 이 값을
입력하십시오.