クラス AbstractReflectiveMBeanInfoAssembler

java.lang.ObjectSE
org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler
org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
実装されたすべてのインターフェース:
MBeanInfoAssembler
既知の直属サブクラス
AbstractConfigurableMBeanInfoAssemblerMetadataMBeanInfoAssembler

public abstract class AbstractReflectiveMBeanInfoAssembler extends AbstractMBeanInfoAssembler
AbstractMBeanInfoAssembler スーパークラスに基づいて構築し、MBean クラスのリフレクトメタデータに基づいてメタデータを構築するための基本的なアルゴリズムを追加します。

リフレクティブメタデータから MBean メタデータを作成するためのロジックはこのクラスに含まれていますが、このクラスはどのメソッドとプロパティを公開するかを決定しません。代わりに、includeXXX メソッドを介して各プロパティまたはメソッドに「投票」する機会をサブクラスに与えます。

サブクラスには、メタデータが populateXXXDescriptor メソッドを介してアセンブルされると、属性と操作のメタデータに追加の記述子を追加する機会も与えられます。

導入:
1.2
作成者:
Rob Harrop, Juergen Hoeller, David Boden
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • AbstractReflectiveMBeanInfoAssembler

      public AbstractReflectiveMBeanInfoAssembler()
  • メソッドの詳細

    • setDefaultCurrencyTimeLimit

      public void setDefaultCurrencyTimeLimit(@Nullable IntegerSE defaultCurrencyTimeLimit)
      JMX フィールド "currencyTimeLimit" のデフォルトを設定します。デフォルトでは通常、属性値をキャッシュしないことを示します。

      デフォルトは none で、JMX 1.2 仕様で推奨されているように、そのフィールドを明示的に設定していません。これにより、「キャッシュしない」動作が発生し、常に属性値が新しく読み取られます(これは、JMX 1.2 の -1 の "currencyTimeLimit" に対応します)。

      ただし、一部の JMX 実装(その点で JMX 1.2 仕様に準拠していない)では、「キャッシュしない」動作を取得するために、ここで明示的な値を設定する必要がある場合があります(JBoss 3.2.x など)。

      "currencyTimeLimit" 値は、管理対象の属性または操作でも指定できることに注意してください。そこで "currencyTimeLimit" 値 >= 0 でオーバーライドされない場合、デフォルト値が適用されます。-1 のメタデータ "currencyTimeLimit" 値は、デフォルトを使用することを示します。0 の値は、「常にキャッシュ」することを示し、Integer.MAX_VALUE に変換されます。正の値は、キャッシュ秒数を示します。

      関連事項:
    • getDefaultCurrencyTimeLimit

      @Nullable protected IntegerSE getDefaultCurrencyTimeLimit()
      JMX フィールド "currencyTimeLimit" のデフォルト値を返します(ある場合)。
    • setUseStrictCasing

      public void setUseStrictCasing(boolean useStrictCasing)
      属性に厳密な大文字小文字を使用するかどうかを設定します。デフォルトで有効になっています。

      厳密な大文字小文字を使用する場合、getFoo() などの getter を持つ JavaBean プロパティは、Foo と呼ばれる属性に変換されます。厳密なケーシングを無効にすると、getFoo() は foo に変換されます。

    • isUseStrictCasing

      protected boolean isUseStrictCasing()
      属性の厳密な大文字小文字の区別が有効かどうかを返します。
    • setExposeClassDescriptor

      public void setExposeClassDescriptor(boolean exposeClassDescriptor)
      管理対象オペレーションの JMX 記述子フィールド「クラス」を公開するかどうかを設定します。デフォルトは "false" で、JMX 実装がリフレクションを通じて実際のクラスを決定できるようにします。

      「クラス」フィールドを指定する必要がある JMX 実装の場合、このプロパティを true に設定します(例: WebLogic)。その場合、プレーンな Bean インスタンスまたは CGLIB プロキシの場合、Spring はそこでターゲットクラス名を公開します。JDK 動的プロキシに遭遇すると、プロキシによって実装される最初のインターフェースが指定されます。

      警告 : JMX を介して JDK 動的プロキシを公開する場合、特にこのプロパティが true になっている場合は、プロキシ定義を確認してください。: この場合、指定されたインターフェースリストは管理インターフェースで始まり、他のすべてのインターフェースがそれに続きます。一般に、ターゲット Bean を直接公開するか、代わりに CGLIB プロキシを公開することを検討してください。

      関連事項:
    • isExposeClassDescriptor

      protected boolean isExposeClassDescriptor()
      管理された操作の JMX 記述子フィールド「クラス」を公開するかどうかを返します。
    • setParameterNameDiscoverer

      public void setParameterNameDiscoverer(@Nullable ParameterNameDiscoverer parameterNameDiscoverer)
      必要に応じてメソッドのパラメーター名を解決するために使用するように ParameterNameDiscoverer を設定します(MBean 操作メソッドのパラメーター名など)。

      デフォルトは DefaultParameterNameDiscoverer です。

    • getParameterNameDiscoverer

      @Nullable protected ParameterNameDiscoverer getParameterNameDiscoverer()
      必要に応じてメソッドのパラメーター名を解決するために使用する ParameterNameDiscoverer を返します(パラメーターの検出をスキップするために null の場合があります)。
    • getAttributeInfo

      protected ModelMBeanAttributeInfoSE[] getAttributeInfo(ObjectSE managedBean, StringSE beanKey) throws JMExceptionSE
      MBean クラスのすべてのプロパティを反復処理し、サブクラスにアクセサーとミューテーターの両方を含めることに投票する機会を与えます。特定のアクセサーまたはミューテーターが含まれるように投票された場合、適切なメタデータがアセンブルされ、記述子母集団のサブクラスに渡されます。
      次で指定:
      クラス AbstractMBeanInfoAssemblergetAttributeInfo 
      パラメーター:
      managedBean - Bean インスタンス (AOP プロキシである可能性があります)
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      属性メタデータ
      例外:
      JMExceptionSE - エラーの場合
      関連事項:
    • getOperationInfo

      protected ModelMBeanOperationInfoSE[] getOperationInfo(ObjectSE managedBean, StringSE beanKey)
      MBean クラスのすべてのメソッドを反復処理し、サブクラスにそれらの包含に投票する機会を与えます。特定のメソッドが、管理インターフェースに含まれている属性のアクセサーまたはミューテーターに対応している場合、対応する操作は「ロール」で公開されます。適切な値に設定された記述子フィールド。
      次で指定:
      クラス AbstractMBeanInfoAssemblergetOperationInfo 
      パラメーター:
      managedBean - Bean インスタンス (AOP プロキシである可能性があります)
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      操作メタデータ
      関連事項:
    • createModelMBeanOperationInfo

      protected ModelMBeanOperationInfoSE createModelMBeanOperationInfo(MethodSE method, StringSE name, StringSE beanKey)
      指定されたメソッドの ModelMBeanOperationInfo のインスタンスを作成します。操作のパラメーター情報を入力します。
      パラメーター:
      method - ModelMBeanOperationInfo を作成するための Method 
      name - 操作の論理名(メソッド名またはプロパティ名)。デフォルトの実装では使用されませんが、サブクラスで使用される可能性があります
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      ModelMBeanOperationInfo
    • getClassForDescriptor

      protected ClassSE<?> getClassForDescriptor(ObjectSE managedBean)
      JMX 記述子フィールド "class" に使用されるクラスを返します。"exposeClassDescriptor" プロパティが "true" の場合にのみ適用されます。

      デフォルトの実装は、JDK プロキシ用に最初に実装されたインターフェースと、それ以外のターゲットクラスを返します。

      パラメーター:
      managedBean - Bean インスタンス (AOP プロキシである可能性があります)
      戻り値:
      記述子フィールド "class" で公開するクラス
      関連事項:
    • includeReadAttribute

      protected abstract boolean includeReadAttribute(MethodSE method, StringSE beanKey)
      サブクラスが特定の属性アクセサーの包含について投票できるようにします。
      パラメーター:
      method - アクセサー Method
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      アクセサーを管理インターフェースに含める場合は true、それ以外の場合は false
    • includeWriteAttribute

      protected abstract boolean includeWriteAttribute(MethodSE method, StringSE beanKey)
      サブクラスが特定の属性ミューテーターの包含について投票できるようにします。
      パラメーター:
      method - ミューテータ Method
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      ミューテーターを管理インターフェースに含める場合は true、それ以外の場合は false
    • includeOperation

      protected abstract boolean includeOperation(MethodSE method, StringSE beanKey)
      サブクラスが特定の操作の包含について投票できるようにします。
      パラメーター:
      method - 操作方法
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      操作を管理インターフェースに含めるかどうか
    • getAttributeDescription

      protected StringSE getAttributeDescription(PropertyDescriptorSE propertyDescriptor, StringSE beanKey)
      特定の属性の説明を取得します。

      デフォルトの実装は、対応する Method の名前である操作の説明を返します。

      パラメーター:
      propertyDescriptor - 属性の PropertyDescriptor
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      属性の説明
    • getOperationDescription

      protected StringSE getOperationDescription(MethodSE method, StringSE beanKey)
      特定の操作の説明を取得します。

      デフォルトの実装は、対応する Method の名前である操作の説明を返します。

      パラメーター:
      method - 操作方法
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      操作の説明
    • getOperationParameters

      protected MBeanParameterInfoSE[] getOperationParameters(MethodSE method, StringSE beanKey)
      指定されたメソッドのパラメーター情報を作成します。

      デフォルトの実装は、MBeanParameterInfo の空の配列を返します。

      パラメーター:
      method - パラメーター情報を取得する Method 
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      戻り値:
      MBeanParameterInfo 配列
    • populateMBeanDescriptor

      protected void populateMBeanDescriptor(DescriptorSE descriptor, ObjectSE managedBean, StringSE beanKey)
      サブクラスが MBean の Descriptor にフィールドを追加できるようにします。

      デフォルトの実装では、currencyTimeLimit フィールドが指定された "defaultCurrencyTimeLimit" に設定されます(デフォルトではなし)。

      オーバーライド:
      クラス AbstractMBeanInfoAssemblerpopulateMBeanDescriptor 
      パラメーター:
      descriptor - MBean リソースの Descriptor
      managedBean - Bean インスタンス (AOP プロキシである可能性があります)
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      関連事項:
    • populateAttributeDescriptor

      protected void populateAttributeDescriptor(DescriptorSE desc, @Nullable MethodSE getter, @Nullable MethodSE setter, StringSE beanKey)
      サブクラスが特定の属性の Descriptor にフィールドを追加できるようにします。

      デフォルトの実装では、currencyTimeLimit フィールドが指定された "defaultCurrencyTimeLimit" に設定されます(デフォルトではなし)。

      パラメーター:
      desc - 属性記述子
      getter - 属性のアクセサーメソッド
      setter - 属性のミューテーターメソッド
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      関連事項:
    • populateOperationDescriptor

      protected void populateOperationDescriptor(DescriptorSE desc, MethodSE method, StringSE beanKey)
      サブクラスが特定の操作のために Descriptor にフィールドを追加できるようにします。

      デフォルトの実装では、currencyTimeLimit フィールドが指定された "defaultCurrencyTimeLimit" に設定されます(デフォルトではなし)。

      パラメーター:
      desc - 操作記述子
      method - 操作に対応するメソッド
      beanKey - MBeanExporter の Bean マップで MBean に関連付けられているキー
      関連事項:
    • applyDefaultCurrencyTimeLimit

      protected final void applyDefaultCurrencyTimeLimit(DescriptorSE desc)
      currencyTimeLimit フィールドを指定された "defaultCurrencyTimeLimit" に設定します(ある場合)(デフォルトではなし)。
      パラメーター:
      desc - JMX 属性または操作記述子
      関連事項:
    • applyCurrencyTimeLimit

      protected void applyCurrencyTimeLimit(DescriptorSE desc, int currencyTimeLimit)
      指定された JMX の "currencyTimeLimit" 値を指定された記述子に適用します。

      デフォルトの実装では、値 >0 をそのまま(キャッシュ秒数として)設定し、0 の値を Integer.MAX_VALUE (「常にキャッシュ」)に変換し、"defaultCurrencyTimeLimit" (存在する場合は「キャッシュしない」を示す)を設定します。値 <0. これは、JMX 1.2 仕様の推奨事項に従います。

      パラメーター:
      desc - JMX 属性または操作記述子
      currencyTimeLimit - 適用する "currencyTimeLimit" 値
      関連事項: