模块 jdk.jfr
 jdk.jfr

注解元数据定义


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

在以下示例中,事务事件使用两个用户定义的注释 @Severity@TransactionId 进行定义。

@MetadataDefinition
@Label("Severity")
@Description("Value between 0 and 100 that indicates severity. 100 is most severe.")
@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 的声明中可确保信息由 Flight Recorder 保存。
自从:
9