org.springframework.jmx.support

## 类 JmxUtils

- java.lang.Object
- - org.springframework.jmx.support.JmxUtils

-     public abstract class JmxUtils
      extends Object

  Collection of generic utility methods to support Spring JMX. Includes a convenient method to locate an MBeanServer.
  从以下版本开始:
    1.2
  作者:
    Rob Harrop, Juergen Hoeller
  另请参阅:
    `locateMBeanServer()`

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static String` | `IDENTITY_OBJECT_NAME_KEY` The key used when extending an existing `ObjectName` with the identity hash code of its corresponding managed resource.

  - ### 构造器概要

    构造器
    构造器和说明
    `JmxUtils()`

  - ### 方法概要

    所有方法 静态方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `static ObjectName` | `appendIdentityToObjectName(ObjectName objectName, Object managedResource)` Append an additional key/value pair to an existing `ObjectName` with the key being the static value `identity` and the value being the identity hash code of the managed resource being exposed on the supplied `ObjectName`.
    `static String` | `getAttributeName(PropertyDescriptor property, boolean useStrictCasing)` Return the JMX attribute name to use for the given JavaBeans property.
    `static Class<?>` | `getClassToExpose(Class<?> clazz)` Return the class or interface to expose for the given bean class.
    `static Class<?>` | `getClassToExpose(Object managedBean)` Return the class or interface to expose for the given bean.
    `static Class<?>` | `getMBeanInterface(Class<?> clazz)` Return the Standard MBean interface for the given class, if any (that is, an interface whose name matches the class name of the given class but with suffix "MBean").
    `static String[]` | `getMethodSignature(Method method)` Create a `String[]` representing the argument signature of a method.
    `static Class<?>` | `getMXBeanInterface(Class<?> clazz)` Return the Java 6 MXBean interface exists for the given class, if any (that is, an interface whose name ends with "MXBean" and/or carries an appropriate MXBean annotation).
    `static boolean` | `isMBean(Class<?> clazz)` Determine whether the given bean class qualifies as an MBean as-is.
    `static MBeanServer` | `locateMBeanServer()` Attempt to find a locally running `MBeanServer`.
    `static MBeanServer` | `locateMBeanServer(String agentId)` Attempt to find a locally running `MBeanServer`.
    `static Class<?>[]` | `parameterInfoToTypes(MBeanParameterInfo[] paramInfo)` Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.
    `static Class<?>[]` | `parameterInfoToTypes(MBeanParameterInfo[] paramInfo, ClassLoader classLoader)` Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### IDENTITY_OBJECT_NAME_KEY

          public static final String IDENTITY_OBJECT_NAME_KEY

      The key used when extending an existing `ObjectName` with the identity hash code of its corresponding managed resource.
      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### JmxUtils

          public JmxUtils()

  - ### 方法详细资料

    - #### locateMBeanServer

          public static MBeanServer locateMBeanServer()
                                               throws MBeanServerNotFoundException

      Attempt to find a locally running `MBeanServer`. Fails if no `MBeanServer` can be found. Logs a warning if more than one `MBeanServer` found, returning the first one from the list.
      返回:
        the `MBeanServer` if found
      抛出:
        `MBeanServerNotFoundException` - if no `MBeanServer` could be found
      另请参阅:
        `MBeanServerFactory.findMBeanServer(java.lang.String)`

    - #### locateMBeanServer

          public static MBeanServer locateMBeanServer(@Nullable
                                                      String agentId)
                                               throws MBeanServerNotFoundException

      Attempt to find a locally running `MBeanServer`. Fails if no `MBeanServer` can be found. Logs a warning if more than one `MBeanServer` found, returning the first one from the list.
      参数:
        `agentId` - the agent identifier of the MBeanServer to retrieve. If this parameter is `null`, all registered MBeanServers are considered. If the empty String is given, the platform MBeanServer will be returned.
      返回:
        the `MBeanServer` if found
      抛出:
        `MBeanServerNotFoundException` - if no `MBeanServer` could be found
      另请参阅:
        `MBeanServerFactory.findMBeanServer(String)`

    - #### parameterInfoToTypes

          @Nullable
          public static Class<?>[] parameterInfoToTypes(@Nullable
                                                                   MBeanParameterInfo[] paramInfo)
                                                            throws ClassNotFoundException

      Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.
      参数:
        `paramInfo` - the JMX parameter info
      返回:
        the parameter types as classes
      抛出:
        `ClassNotFoundException` - if a parameter type could not be resolved

    - #### parameterInfoToTypes

          @Nullable
          public static Class<?>[] parameterInfoToTypes(@Nullable
                                                                   MBeanParameterInfo[] paramInfo,
                                                                   @Nullable
                                                                   ClassLoader classLoader)
                                                            throws ClassNotFoundException

      Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.
      参数:
        `paramInfo` - the JMX parameter info
        `classLoader` - the ClassLoader to use for loading parameter types
      返回:
        the parameter types as classes
      抛出:
        `ClassNotFoundException` - if a parameter type could not be resolved

    - #### getMethodSignature

          public static String[] getMethodSignature(Method method)

      Create a `String[]` representing the argument signature of a method. Each element in the array is the fully qualified class name of the corresponding argument in the methods signature.
      参数:
        `method` - the method to build an argument signature for
      返回:
        the signature as array of argument types

    - #### getAttributeName

          public static String getAttributeName(PropertyDescriptor property,
                                                boolean useStrictCasing)

      Return the JMX attribute name to use for the given JavaBeans property.

      When using strict casing, a JavaBean property with a getter method such as `getFoo()` translates to an attribute called `Foo`. With strict casing disabled, `getFoo()` would translate to just `foo`.

      参数:
        `property` - the JavaBeans property descriptor
        `useStrictCasing` - whether to use strict casing
      返回:
        the JMX attribute name to use

    - #### appendIdentityToObjectName

          public static ObjectName appendIdentityToObjectName(ObjectName objectName,
                                                              Object managedResource)
                                                       throws MalformedObjectNameException

      Append an additional key/value pair to an existing `ObjectName` with the key being the static value `identity` and the value being the identity hash code of the managed resource being exposed on the supplied `ObjectName`. This can be used to provide a unique `ObjectName` for each distinct instance of a particular bean or class. Useful when generating `ObjectNames` at runtime for a set of managed resources based on the template value supplied by a `ObjectNamingStrategy`.
      参数:
        `objectName` - the original JMX ObjectName
        `managedResource` - the MBean instance
      返回:
        an ObjectName with the MBean identity added
      抛出:
        `MalformedObjectNameException` - in case of an invalid object name specification
      另请参阅:
        `ObjectUtils.getIdentityHexString(Object)`

    - #### getClassToExpose

          public static Class<?> getClassToExpose(Object managedBean)

      Return the class or interface to expose for the given bean. This is the class that will be searched for attributes and operations (for example, checked for annotations).

      This implementation returns the superclass for a CGLIB proxy and the class of the given bean else (for a JDK proxy or a plain bean class).

      参数:
        `managedBean` - the bean instance (might be an AOP proxy)
      返回:
        the bean class to expose
      另请参阅:
        `ClassUtils.getUserClass(Object)`

    - #### getClassToExpose

          public static Class<?> getClassToExpose(Class<?> clazz)

      Return the class or interface to expose for the given bean class. This is the class that will be searched for attributes and operations (for example, checked for annotations).

      This implementation returns the superclass for a CGLIB proxy and the class of the given bean else (for a JDK proxy or a plain bean class).

      参数:
        `clazz` - the bean class (might be an AOP proxy class)
      返回:
        the bean class to expose
      另请参阅:
        `ClassUtils.getUserClass(Class)`

    - #### isMBean

          public static boolean isMBean(@Nullable
                                        Class<?> clazz)

      Determine whether the given bean class qualifies as an MBean as-is.

      This implementation checks for `DynamicMBean` classes as well as classes with corresponding "*MBean" interface (Standard MBeans) or corresponding "*MXBean" interface (Java 6 MXBeans).

      参数:
        `clazz` - the bean class to analyze
      返回:
        whether the class qualifies as an MBean
      另请参阅:
        `MBeanExporter.isMBean(Class)`

    - #### getMBeanInterface

          @Nullable
          public static Class<?> getMBeanInterface(@Nullable
                                                              Class<?> clazz)

      Return the Standard MBean interface for the given class, if any (that is, an interface whose name matches the class name of the given class but with suffix "MBean").
      参数:
        `clazz` - the class to check
      返回:
        the Standard MBean interface for the given class

    - #### getMXBeanInterface

          @Nullable
          public static Class<?> getMXBeanInterface(@Nullable
                                                               Class<?> clazz)

      Return the Java 6 MXBean interface exists for the given class, if any (that is, an interface whose name ends with "MXBean" and/or carries an appropriate MXBean annotation).
      参数:
        `clazz` - the class to check
      返回:
        whether there is an MXBean interface for the given class