クラス 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 StringSE
JMXDescriptor
SE のクラスフィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE の通貨期限フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE のデフォルトフィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内の displayName フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE の getter メソッドを識別します。protected static final StringSE
JMXDescriptor
SE のログフィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE のログファイルフィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内のカスタム metricCategory フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内の metricType フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内の persistLocation フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内の persistName フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内の persistPeriod フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE 内の persistPolicy フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE のロールフィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE の setter メソッドを識別します。protected static final StringSE
JMXDescriptor
SE の単位フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE の可視性フィールドの定数識別子。protected static final StringSE
JMXDescriptor
SE の getter ロールフィールド値の定数識別子。protected static final StringSE
JMXDescriptor
SE の操作(メソッド)を識別します。protected static final StringSE
JMXDescriptor
SE の setter ロールフィールド値の定数識別子。コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected void
applyCurrencyTimeLimit
(DescriptorSE desc, int currencyTimeLimit) 指定された JMX "currencyTimeLimit" 値を指定された記述子に適用します。protected final void
指定された "defaultCurrencyTimeLimit" がある場合は、currencyTimeLimit
フィールドをその値に設定します (デフォルトではなし)。protected ModelMBeanOperationInfoSE
createModelMBeanOperationInfo
(MethodSE method, StringSE name, StringSE beanKey) 指定されたメソッドのModelMBeanOperationInfo
のインスタンスを作成します。protected StringSE
getAttributeDescription
(PropertyDescriptorSE propertyDescriptor, StringSE beanKey) 特定の属性の説明を取得します。protected ModelMBeanAttributeInfoSE[]
getAttributeInfo
(ObjectSE managedBean, StringSE beanKey) MBean クラスのすべてのプロパティを反復処理し、サブクラスにアクセサーとミューテーターの両方を含めることについて投票する機会を与えます。protected ClassSE<?>
getClassForDescriptor
(ObjectSE managedBean) JMX 記述子フィールド「クラス」に使用されるクラスを返します。protected IntegerSE
JMX フィールド "currencyTimeLimit" のデフォルト値を返します (存在する場合)。protected StringSE
getOperationDescription
(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 boolean
includeOperation
(MethodSE method, StringSE beanKey) サブクラスが特定の操作の包含について投票できるようにします。protected abstract boolean
includeReadAttribute
(MethodSE method, StringSE beanKey) サブクラスが特定の属性アクセサーの包含について投票できるようにします。protected abstract boolean
includeWriteAttribute
(MethodSE method, StringSE beanKey) サブクラスが特定の属性ミューテーターの包含について投票できるようにします。protected boolean
管理された操作の JMX 記述子フィールド「クラス」を公開するかどうかを返します。protected boolean
属性の厳密な大文字小文字の区別が有効かどうかを返します。protected void
populateAttributeDescriptor
(DescriptorSE desc, MethodSE getter, MethodSE setter, StringSE beanKey) サブクラスが特定の属性のDescriptor
にフィールドを追加できるようにします。protected void
populateMBeanDescriptor
(DescriptorSE descriptor, ObjectSE managedBean, StringSE beanKey) サブクラスが MBean のDescriptor
にフィールドを追加できるようにします。protected void
populateOperationDescriptor
(DescriptorSE desc, MethodSE method, StringSE beanKey) サブクラスが特定の操作のためにDescriptor
にフィールドを追加できるようにします。void
setDefaultCurrencyTimeLimit
(IntegerSE defaultCurrencyTimeLimit) JMX フィールド "currencyTimeLimit" のデフォルトを設定します。void
setExposeClassDescriptor
(boolean exposeClassDescriptor) 管理対象オペレーションの JMX 記述子フィールド「クラス」を公開するかどうかを設定します。void
setParameterNameDiscoverer
(ParameterNameDiscoverer parameterNameDiscoverer) 必要に応じて、メソッドパラメーター名の解決に使用する ParameterNameDiscoverer を設定します(例:void
setUseStrictCasing
(boolean useStrictCasing) 属性に厳密な大文字小文字を使用するかどうかを設定します。クラス org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler から継承されたメソッド
checkManagedBean, getClassName, getClassToExpose, getClassToExpose, getConstructorInfo, getDescription, getMBeanInfo, getNotificationInfo, getTargetClass
フィールドの詳細
FIELD_GET_METHOD
JMXDescriptor
SE の getter メソッドを識別します。- 関連事項:
FIELD_SET_METHOD
JMXDescriptor
SE の setter メソッドを識別します。- 関連事項:
FIELD_ROLE
JMXDescriptor
SE のロールフィールドの定数識別子。- 関連事項:
ROLE_GETTER
JMXDescriptor
SE の getter ロールフィールド値の定数識別子。- 関連事項:
ROLE_SETTER
JMXDescriptor
SE の setter ロールフィールド値の定数識別子。- 関連事項:
ROLE_OPERATION
JMXDescriptor
SE の操作(メソッド)を識別します。- 関連事項:
FIELD_VISIBILITY
JMXDescriptor
SE の可視性フィールドの定数識別子。- 関連事項:
ATTRIBUTE_OPERATION_VISIBILITY
protected static final int ATTRIBUTE_OPERATION_VISIBILITY最も低い可視性。属性のアクセサーまたはミューテーターに対応する操作に使用されます。- 関連事項:
FIELD_CLASS
JMXDescriptor
SE のクラスフィールドの定数識別子。- 関連事項:
FIELD_LOG
JMXDescriptor
SE のログフィールドの定数識別子。- 関連事項:
FIELD_LOG_FILE
JMXDescriptor
SE のログファイルフィールドの定数識別子。- 関連事項:
FIELD_CURRENCY_TIME_LIMIT
JMXDescriptor
SE の通貨期限フィールドの定数識別子。- 関連事項:
FIELD_DEFAULT
JMXDescriptor
SE のデフォルトフィールドの定数識別子。- 関連事項:
FIELD_PERSIST_POLICY
JMXDescriptor
SE 内の persistPolicy フィールドの定数識別子。- 関連事項:
FIELD_PERSIST_PERIOD
JMXDescriptor
SE 内の persistPeriod フィールドの定数識別子。- 関連事項:
FIELD_PERSIST_LOCATION
JMXDescriptor
SE 内の persistLocation フィールドの定数識別子。- 関連事項:
FIELD_PERSIST_NAME
JMXDescriptor
SE 内の persistName フィールドの定数識別子。- 関連事項:
FIELD_DISPLAY_NAME
JMXDescriptor
SE 内の displayName フィールドの定数識別子。- 関連事項:
FIELD_UNITS
JMXDescriptor
SE の単位フィールドの定数識別子。- 関連事項:
FIELD_METRIC_TYPE
JMXDescriptor
SE 内の metricType フィールドの定数識別子。- 関連事項:
FIELD_METRIC_CATEGORY
JMXDescriptor
SE 内のカスタム 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
を作成するためのMethod
name
- 操作の論理名(メソッド名またはプロパティ名)。デフォルトの実装では使用されませんが、サブクラスで使用される可能性がありますbeanKey
-MBeanExporter
の Bean マップで MBean に関連付けられているキー- 戻り値:
ModelMBeanOperationInfo
getClassForDescriptor
JMX 記述子フィールド "class" に使用されるクラスを返します。"exposeClassDescriptor" プロパティが "true" の場合にのみ適用されます。デフォルトの実装は、JDK プロキシ用に最初に実装されたインターフェースと、それ以外のターゲットクラスを返します。
- パラメーター:
managedBean
- Bean インスタンス (AOP プロキシである可能性があります)- 戻り値:
- 記述子フィールド "class" で公開するクラス
- 関連事項:
includeReadAttribute
サブクラスが特定の属性アクセサーの包含について投票できるようにします。- パラメーター:
method
- アクセサーMethod
beanKey
-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
- パラメーター情報を取得するMethod
beanKey
-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" 値- 関連事項: