org.springframework.jmx.support

## 类 MBeanRegistrationSupport

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

- 直接已知子类:
    ConnectorServerFactoryBean, MBeanExporter

      public class MBeanRegistrationSupport
      extends Object

  Provides supporting infrastructure for registering MBeans with an `MBeanServer`. The behavior when encountering an existing MBean at a given `ObjectName` is fully configurable allowing for flexible registration settings.

  All registered MBeans are tracked and can be unregistered by calling the #`unregisterBeans()` method.

  Sub-classes can receive notifications when an MBean is registered or unregistered by overriding the `onRegister(ObjectName)` and `onUnregister(ObjectName)` methods respectively.

  By default, the registration process will fail if attempting to register an MBean using a `ObjectName` that is already used.

  By setting the `registrationPolicy` property to `RegistrationPolicy.IGNORE_EXISTING` the registration process will simply ignore existing MBeans leaving them registered. This is useful in settings where multiple applications want to share a common MBean in a shared `MBeanServer`.

  Setting `registrationPolicy` property to `RegistrationPolicy.REPLACE_EXISTING` will cause existing MBeans to be replaced during registration if necessary. This is useful in situations where you can't guarantee the state of your `MBeanServer`.

  从以下版本开始:
    2.0
  作者:
    Rob Harrop, Juergen Hoeller, Phillip Webb
  另请参阅:
    `setServer(javax.management.MBeanServer)`, `setRegistrationPolicy(org.springframework.jmx.support.RegistrationPolicy)`, `MBeanExporter`

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `protected Log` | `logger` `Log` instance for this class.
    `protected MBeanServer` | `server` The `MBeanServer` instance being used to register beans.

  - ### 构造器概要

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

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected void` | `doRegister(Object mbean, ObjectName objectName)` Actually register the MBean with the server.
    `protected void` | `doUnregister(ObjectName objectName)` Actually unregister the specified MBean from the server.
    `protected ObjectName[]` | `getRegisteredObjectNames()` Return the `ObjectNames` of all registered beans.
    `MBeanServer` | `getServer()` Return the `MBeanServer` that the beans will be registered with.
    `protected void` | `onRegister(ObjectName objectName)` Called when an MBean is registered under the given `ObjectName`.
    `protected void` | `onRegister(ObjectName objectName, Object mbean)` Called when an MBean is registered under the given `ObjectName`.
    `protected void` | `onUnregister(ObjectName objectName)` Called when an MBean is unregistered under the given `ObjectName`.
    `void` | `setRegistrationPolicy(RegistrationPolicy registrationPolicy)` The policy to use when attempting to register an MBean under an `ObjectName` that already exists.
    `void` | `setServer(MBeanServer server)` Specify the `MBeanServer` instance with which all beans should be registered.
    `protected void` | `unregisterBeans()` Unregisters all beans that have been registered by an instance of this class.

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

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

- - ### 字段详细资料

    - #### logger

          protected final Log logger

      `Log` instance for this class.

    - #### server

          @Nullable
          protected MBeanServer server

      The `MBeanServer` instance being used to register beans.

  - ### 构造器详细资料

    - #### MBeanRegistrationSupport

          public MBeanRegistrationSupport()

  - ### 方法详细资料

    - #### setServer

          public void setServer(@Nullable
                                MBeanServer server)

      Specify the `MBeanServer` instance with which all beans should be registered. The `MBeanExporter` will attempt to locate an existing `MBeanServer` if none is supplied.

    - #### getServer

          @Nullable
          public final MBeanServer getServer()

      Return the `MBeanServer` that the beans will be registered with.

    - #### setRegistrationPolicy

          public void setRegistrationPolicy(RegistrationPolicy registrationPolicy)

      The policy to use when attempting to register an MBean under an `ObjectName` that already exists.
      参数:
        `registrationPolicy` - the policy to use
      从以下版本开始:
        3.2

    - #### doRegister

          protected void doRegister(Object mbean,
                                    ObjectName objectName)
                             throws JMException

      Actually register the MBean with the server. The behavior when encountering an existing MBean can be configured using `setRegistrationPolicy(org.springframework.jmx.support.RegistrationPolicy)`.
      参数:
        `mbean` - the MBean instance
        `objectName` - the suggested ObjectName for the MBean
      抛出:
        `JMException` - if the registration failed

    - #### unregisterBeans

          protected void unregisterBeans()

      Unregisters all beans that have been registered by an instance of this class.

    - #### doUnregister

          protected void doUnregister(ObjectName objectName)

      Actually unregister the specified MBean from the server.
      参数:
        `objectName` - the suggested ObjectName for the MBean

    - #### getRegisteredObjectNames

          protected final ObjectName[] getRegisteredObjectNames()

      Return the `ObjectNames` of all registered beans.

    - #### onRegister

          protected void onRegister(ObjectName objectName,
                                    Object mbean)

      Called when an MBean is registered under the given `ObjectName`. Allows subclasses to perform additional processing when an MBean is registered.

      The default implementation delegates to `onRegister(ObjectName)`.

      参数:
        `objectName` - the actual `ObjectName` that the MBean was registered with
        `mbean` - the registered MBean instance

    - #### onRegister

          protected void onRegister(ObjectName objectName)

      Called when an MBean is registered under the given `ObjectName`. Allows subclasses to perform additional processing when an MBean is registered.

      The default implementation is empty. Can be overridden in subclasses.

      参数:
        `objectName` - the actual `ObjectName` that the MBean was registered with

    - #### onUnregister

          protected void onUnregister(ObjectName objectName)

      Called when an MBean is unregistered under the given `ObjectName`. Allows subclasses to perform additional processing when an MBean is unregistered.

      The default implementation is empty. Can be overridden in subclasses.

      参数:
        `objectName` - the `ObjectName` that the MBean was registered with