クラス AbstractReflectiveMBeanInfoAssembler
- 実装されているすべてのインターフェース:
MBeanInfoAssembler
AbstractMBeanInfoAssembler スーパークラスに基づいて構築し、MBean クラスのリフレクトメタデータに基づいてメタデータを構築するための基本的なアルゴリズムを追加します。 リフレクティブメタデータから MBean メタデータを作成するためのロジックはこのクラスに含まれていますが、このクラスはどのメソッドとプロパティを公開するかを決定しません。代わりに、includeXXX メソッドを介して各プロパティまたはメソッドに「投票」する機会をサブクラスに与えます。
サブクラスには、メタデータが populateXXXDescriptor メソッドを介してアセンブルされると、属性と操作のメタデータに追加の記述子を追加する機会も与えられます。
- 導入:
- 1.2
- 作成者:
- Rob Harrop, Juergen Hoeller, David Boden
- 関連事項:
includeOperation(java.lang.reflect.Method, java.lang.String)includeReadAttribute(java.lang.reflect.Method, java.lang.String)includeWriteAttribute(java.lang.reflect.Method, java.lang.String)populateAttributeDescriptor(javax.management.Descriptor, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.String)populateOperationDescriptor(javax.management.Descriptor, java.lang.reflect.Method, java.lang.String)
フィールドのサマリー
フィールド修飾子と型フィールド説明protected static final int最も低い可視性。属性のアクセサーまたはミューテーターに対応する操作に使用されます。protected static final StringSEJMXDescriptorSE のクラスフィールドの定数識別子。protected static final StringSEJMXDescriptorSE の通貨期限フィールドの定数識別子。protected static final StringSEJMXDescriptorSE のデフォルトフィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内の displayName フィールドの定数識別子。protected static final StringSEJMXDescriptorSE の getter メソッドを識別します。protected static final StringSEJMXDescriptorSE のログフィールドの定数識別子。protected static final StringSEJMXDescriptorSE のログファイルフィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内のカスタム metricCategory フィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内の metricType フィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内の persistLocation フィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内の persistName フィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内の persistPeriod フィールドの定数識別子。protected static final StringSEJMXDescriptorSE 内の persistPolicy フィールドの定数識別子。protected static final StringSEJMXDescriptorSE のロールフィールドの定数識別子。protected static final StringSEJMXDescriptorSE の setter メソッドを識別します。protected static final StringSEJMXDescriptorSE の単位フィールドの定数識別子。protected static final StringSEJMXDescriptorSE の可視性フィールドの定数識別子。protected static final StringSEJMXDescriptorSE の getter ロールフィールド値の定数識別子。protected static final StringSEJMXDescriptorSE の操作(メソッド)を識別します。protected static final StringSEJMXDescriptorSE の setter ロールフィールド値の定数識別子。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected voidapplyCurrencyTimeLimit(DescriptorSE desc, int currencyTimeLimit) 指定された JMX "currencyTimeLimit" 値を指定された記述子に適用します。protected final void指定された "defaultCurrencyTimeLimit" がある場合は、currencyTimeLimitフィールドをその値に設定します (デフォルトではなし)。protected ModelMBeanOperationInfoSEcreateModelMBeanOperationInfo(MethodSE method, StringSE name, StringSE beanKey) 指定されたメソッドのModelMBeanOperationInfoのインスタンスを作成します。protected StringSEgetAttributeDescription(PropertyDescriptorSE propertyDescriptor, StringSE beanKey) 特定の属性の説明を取得します。protected ModelMBeanAttributeInfoSE[]getAttributeInfo(ObjectSE managedBean, StringSE beanKey) MBean クラスのすべてのプロパティを反復処理し、サブクラスにアクセサーとミューテーターの両方を含めることについて投票する機会を与えます。protected ClassSE<?>getClassForDescriptor(ObjectSE managedBean) JMX 記述子フィールド「クラス」に使用されるクラスを返します。protected IntegerSEJMX フィールド "currencyTimeLimit" のデフォルト値を返します (存在する場合)。protected StringSEgetOperationDescription(MethodSE method, StringSE beanKey) 特定の操作の説明を取得します。protected ModelMBeanOperationInfoSE[]getOperationInfo(ObjectSE managedBean, StringSE beanKey) MBean クラスのすべてのメソッドを反復処理し、サブクラスにそれらの包含に投票する機会を与えます。protected MBeanParameterInfoSE[]getOperationParameters(MethodSE method, StringSE beanKey) 指定されたメソッドのパラメーター情報を作成します。protected ParameterNameDiscoverer必要に応じてメソッドのパラメーター名を解決するために使用する ParameterNameDiscoverer を返します(パラメーターの検出をスキップするためにnullの場合があります)。protected abstract booleanincludeOperation(MethodSE method, StringSE beanKey) サブクラスが特定の操作の包含について投票できるようにします。protected abstract booleanincludeReadAttribute(MethodSE method, StringSE beanKey) サブクラスが特定の属性アクセサーの包含について投票できるようにします。protected abstract booleanincludeWriteAttribute(MethodSE method, StringSE beanKey) サブクラスが特定の属性ミューテーターの包含について投票できるようにします。protected boolean管理された操作の JMX 記述子フィールド「クラス」を公開するかどうかを返します。protected boolean属性の厳密な大文字小文字の区別が有効かどうかを返します。protected voidpopulateAttributeDescriptor(DescriptorSE desc, MethodSE getter, MethodSE setter, StringSE beanKey) サブクラスが特定の属性のDescriptorにフィールドを追加できるようにします。protected voidpopulateMBeanDescriptor(DescriptorSE descriptor, ObjectSE managedBean, StringSE beanKey) サブクラスが MBean のDescriptorにフィールドを追加できるようにします。protected voidpopulateOperationDescriptor(DescriptorSE desc, MethodSE method, StringSE beanKey) サブクラスが特定の操作のためにDescriptorにフィールドを追加できるようにします。voidsetDefaultCurrencyTimeLimit(IntegerSE defaultCurrencyTimeLimit) JMX フィールド "currencyTimeLimit" のデフォルトを設定します。voidsetExposeClassDescriptor(boolean exposeClassDescriptor) 管理対象オペレーションの JMX 記述子フィールド「クラス」を公開するかどうかを設定します。voidsetParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer) 必要に応じて、メソッドパラメーター名の解決に使用する ParameterNameDiscoverer を設定します(例:voidsetUseStrictCasing(boolean useStrictCasing) 属性に厳密な大文字小文字を使用するかどうかを設定します。クラス org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler から継承されたメソッド
checkManagedBean, getClassName, getClassToExpose, getClassToExpose, getConstructorInfo, getDescription, getMBeanInfo, getNotificationInfo, getTargetClass
フィールドの詳細
FIELD_GET_METHOD
JMXDescriptorSE の getter メソッドを識別します。- 関連事項:
FIELD_SET_METHOD
JMXDescriptorSE の setter メソッドを識別します。- 関連事項:
FIELD_ROLE
JMXDescriptorSE のロールフィールドの定数識別子。- 関連事項:
ROLE_GETTER
JMXDescriptorSE の getter ロールフィールド値の定数識別子。- 関連事項:
ROLE_SETTER
JMXDescriptorSE の setter ロールフィールド値の定数識別子。- 関連事項:
ROLE_OPERATION
JMXDescriptorSE の操作(メソッド)を識別します。- 関連事項:
FIELD_VISIBILITY
JMXDescriptorSE の可視性フィールドの定数識別子。- 関連事項:
ATTRIBUTE_OPERATION_VISIBILITY
protected static final int ATTRIBUTE_OPERATION_VISIBILITY最も低い可視性。属性のアクセサーまたはミューテーターに対応する操作に使用されます。- 関連事項:
FIELD_CLASS
JMXDescriptorSE のクラスフィールドの定数識別子。- 関連事項:
FIELD_LOG
JMXDescriptorSE のログフィールドの定数識別子。- 関連事項:
FIELD_LOG_FILE
JMXDescriptorSE のログファイルフィールドの定数識別子。- 関連事項:
FIELD_CURRENCY_TIME_LIMIT
JMXDescriptorSE の通貨期限フィールドの定数識別子。- 関連事項:
FIELD_DEFAULT
JMXDescriptorSE のデフォルトフィールドの定数識別子。- 関連事項:
FIELD_PERSIST_POLICY
JMXDescriptorSE 内の persistPolicy フィールドの定数識別子。- 関連事項:
FIELD_PERSIST_PERIOD
JMXDescriptorSE 内の persistPeriod フィールドの定数識別子。- 関連事項:
FIELD_PERSIST_LOCATION
JMXDescriptorSE 内の persistLocation フィールドの定数識別子。- 関連事項:
FIELD_PERSIST_NAME
JMXDescriptorSE 内の persistName フィールドの定数識別子。- 関連事項:
FIELD_DISPLAY_NAME
JMXDescriptorSE 内の displayName フィールドの定数識別子。- 関連事項:
FIELD_UNITS
JMXDescriptorSE の単位フィールドの定数識別子。- 関連事項:
FIELD_METRIC_TYPE
JMXDescriptorSE 内の metricType フィールドの定数識別子。- 関連事項:
FIELD_METRIC_CATEGORY
JMXDescriptorSE 内のカスタム metricCategory フィールドの定数識別子。- 関連事項:
コンストラクターの詳細
AbstractReflectiveMBeanInfoAssembler
public AbstractReflectiveMBeanInfoAssembler()
メソッドの詳細
setDefaultCurrencyTimeLimit
JMX フィールド "currencyTimeLimit" のデフォルトを設定します。デフォルトでは、通常、属性値をキャッシュしないことを示します。デフォルトは none で、JMX 1.2 仕様で推奨されているように、そのフィールドを明示的に設定しません。これにより、「キャッシュしない」動作になり、常に属性値が新しく読み取られます (これは、JMX 1.2 の
-1の "currencyTimeLimit" に相当します)。ただし、一部の JMX 実装(その点で JMX 1.2 仕様に準拠していない)では、「キャッシュしない」動作を取得するために、ここで明示的な値を設定する必要がある場合があります(JBoss 3.2.x など)。
"currencyTimeLimit" 値は、管理対象属性または操作にも指定できることに注意してください。そこで "currencyTimeLimit" 値
>= 0で上書きされない場合は、デフォルト値が適用されます。メタデータ "currencyTimeLimit" 値-1は、デフォルトを使用することを示します。値0は「常にキャッシュする」ことを示し、Integer.MAX_VALUEに変換されます。正の値は、キャッシュの秒数を示します。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
必要に応じてメソッドのパラメーター名を解決するために使用するように ParameterNameDiscoverer を設定します(MBean 操作メソッドのパラメーター名など)。デフォルトは
DefaultParameterNameDiscovererです。getParameterNameDiscoverer
必要に応じてメソッドのパラメーター名を解決するために使用する ParameterNameDiscoverer を返します(パラメーターの検出をスキップするためにnullの場合があります)。getAttributeInfo
protected ModelMBeanAttributeInfoSE[] getAttributeInfo(ObjectSE managedBean, StringSE beanKey) throws JMExceptionSE MBean クラスのすべてのプロパティを反復処理し、サブクラスにアクセサーとミューテーターの両方を含めることに投票する機会を与えます。特定のアクセサーまたはミューテーターが含まれるように投票された場合、適切なメタデータがアセンブルされ、記述子母集団のサブクラスに渡されます。- 次で指定:
- クラス
AbstractMBeanInfoAssemblerのgetAttributeInfo - パラメーター:
managedBean- Bean インスタンス (AOP プロキシである可能性があります)beanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- 属性メタデータ
- 例外:
JMExceptionSE- エラーの場合- 関連事項:
getOperationInfo
MBean クラスのすべてのメソッドを反復処理し、サブクラスにそれらの包含に投票する機会を与えます。特定のメソッドが、管理インターフェースに含まれている属性のアクセサーまたはミューテーターに対応している場合、対応する操作は「ロール」で公開されます。適切な値に設定された記述子フィールド。- 次で指定:
- クラス
AbstractMBeanInfoAssemblerのgetOperationInfo - パラメーター:
managedBean- Bean インスタンス (AOP プロキシである可能性があります)beanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- 操作メタデータ
- 関連事項:
createModelMBeanOperationInfo
protected ModelMBeanOperationInfoSE createModelMBeanOperationInfo(MethodSE method, StringSE name, StringSE beanKey) 指定されたメソッドのModelMBeanOperationInfoのインスタンスを作成します。操作のパラメーター情報を入力します。- パラメーター:
method-ModelMBeanOperationInfoを作成するためのMethodname- 操作の論理名(メソッド名またはプロパティ名)。デフォルトの実装では使用されませんが、サブクラスで使用される可能性がありますbeanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
ModelMBeanOperationInfo
getClassForDescriptor
JMX 記述子フィールド "class" に使用されるクラスを返します。"exposeClassDescriptor" プロパティが "true" の場合にのみ適用されます。デフォルトの実装は、JDK プロキシ用に最初に実装されたインターフェースと、それ以外のターゲットクラスを返します。
- パラメーター:
managedBean- Bean インスタンス (AOP プロキシである可能性があります)- 戻り値:
- 記述子フィールド "class" で公開するクラス
- 関連事項:
includeReadAttribute
サブクラスが特定の属性アクセサーの包含について投票できるようにします。- パラメーター:
method- アクセサーMethodbeanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- アクセサーを管理インターフェースに含める場合は
true、それ以外の場合はfalse
includeWriteAttribute
サブクラスが特定の属性ミューテーターの包含について投票できるようにします。- パラメーター:
method- ミューテータMethod。beanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- ミューテーターを管理インターフェースに含める場合は
true、それ以外の場合はfalse
includeOperation
サブクラスが特定の操作の包含について投票できるようにします。- パラメーター:
method- 操作方法beanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- 操作を管理インターフェースに含めるかどうか
getAttributeDescription
protected StringSE getAttributeDescription(PropertyDescriptorSE propertyDescriptor, StringSE beanKey) 特定の属性の説明を取得します。デフォルトの実装は、対応する
Methodの名前である操作の説明を返します。- パラメーター:
propertyDescriptor- 属性の PropertyDescriptorbeanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- 属性の説明
getOperationDescription
特定の操作の説明を取得します。デフォルトの実装は、対応する
Methodの名前である操作の説明を返します。- パラメーター:
method- 操作方法beanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
- 操作の説明
getOperationParameters
指定されたメソッドのパラメーター情報を作成します。デフォルトの実装は、
MBeanParameterInfoの空の配列を返します。- パラメーター:
method- パラメーター情報を取得するMethodbeanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 戻り値:
MBeanParameterInfo配列
populateMBeanDescriptor
protected void populateMBeanDescriptor(DescriptorSE descriptor, ObjectSE managedBean, StringSE beanKey) サブクラスが MBean のDescriptorにフィールドを追加できるようにします。デフォルトの実装では、指定された "defaultCurrencyTimeLimit" が存在する場合(デフォルトではなし)、
currencyTimeLimitフィールドがそれに設定されます。- オーバーライド:
- クラス
AbstractMBeanInfoAssemblerのpopulateMBeanDescriptor - パラメーター:
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にフィールドを追加できるようにします。デフォルトの実装では、指定された "defaultCurrencyTimeLimit" が存在する場合(デフォルトではなし)、
currencyTimeLimitフィールドがそれに設定されます。- パラメーター:
desc- 属性記述子getter- 属性のアクセサーメソッドsetter- 属性のミューテーターメソッドbeanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 関連事項:
populateOperationDescriptor
サブクラスが特定の操作のためにDescriptorにフィールドを追加できるようにします。デフォルトの実装では、指定された "defaultCurrencyTimeLimit" が存在する場合(デフォルトではなし)、
currencyTimeLimitフィールドがそれに設定されます。- パラメーター:
desc- 操作記述子method- 操作に対応するメソッドbeanKey-MBeanExporterの Bean マップで MBean に関連付けられているキー- 関連事項:
applyDefaultCurrencyTimeLimit
指定された "defaultCurrencyTimeLimit" がある場合は、currencyTimeLimitフィールドをその値に設定します (デフォルトではなし)。- パラメーター:
desc- JMX 属性または操作記述子- 関連事項:
applyCurrencyTimeLimit
指定された JMX "currencyTimeLimit" 値を指定された記述子に適用します。デフォルトの実装では、値
>0をそのまま (キャッシュ秒数として) 設定し、値0をInteger.MAX_VALUE(「常にキャッシュ」) に変換し、値<0の場合は "defaultCurrencyTimeLimit" (存在する場合は「キャッシュしない」を示す) を設定します。これは、JMX 1.2 仕様の推奨事項に従います。- パラメーター:
desc- JMX 属性または操作記述子currencyTimeLimit- 適用する "currencyTimeLimit" 値- 関連事項: