Module jdk.jfr
Package jdk.jfr

Annotation Interface MetadataDefinition


@Retention(RUNTIME) @Target(TYPE) public @interface MetadataDefinition
用于定义新类型事件元数据的元注释。

在下面的示例中,定义了一个事务事件,其中包含两个用户定义的注释,@Severity@TransactionId

@MetadataDefinition
@Label("Severity")
@Description("值在0到100之间,表示严重程度。100 最严重。")
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE })
public @interface Severity {
    int value() default 50;
}

@MetadataDefinition
@Label("Transaction Id")
@Relational
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD })
public @interface TransactionId {
}

@Severity(80)
@Label("Transaction Blocked")
class TransactionBlocked extends Event {
    @TransactionId
    @Label("Transaction")
    long transactionId1;

    @TransactionId
    @Label("Transaction Blocker")
    long transactionId2;
}
@MetadataDefinition 添加到 @Severity@TransactionId 的声明中,确保信息被飞行记录器保存。
自:
9