org.springframework.jmx.support

## 类 MBeanServerFactoryBean

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

- 所有已实现的接口:
    org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.FactoryBean<MBeanServer>, org.springframework.beans.factory.InitializingBean

      public class MBeanServerFactoryBean
      extends Object
      implements org.springframework.beans.factory.FactoryBean<MBeanServer>, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean

  `FactoryBean` that obtains an `MBeanServer` reference through the standard JMX 1.2 `MBeanServerFactory` API (which is available on JDK 1.5 or as part of a JMX 1.2 provider). Exposes the `MBeanServer` for bean references.

  By default, `MBeanServerFactoryBean` will always create a new `MBeanServer` even if one is already running. To have the `MBeanServerFactoryBean` attempt to locate a running `MBeanServer` first, set the value of the "locateExistingServerIfPossible" property to "true".

  从以下版本开始:
    1.2
  作者:
    Rob Harrop, Juergen Hoeller
  另请参阅:
    `setLocateExistingServerIfPossible(boolean)`, `locateMBeanServer(java.lang.String)`, `MBeanServer`, `MBeanServerFactory.findMBeanServer(java.lang.String)`, `MBeanServerFactory.createMBeanServer()`, `MBeanServerFactory.newMBeanServer()`, `MBeanServerConnectionFactoryBean`, `ConnectorServerFactoryBean`

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `protected Log` | `logger`

  - ### 构造器概要

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

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `afterPropertiesSet()` Creates the `MBeanServer` instance.
    `protected MBeanServer` | `createMBeanServer(String defaultDomain, boolean registerWithFactory)` Create a new `MBeanServer` instance and register it with the `MBeanServerFactory`, if desired.
    `void` | `destroy()` Unregisters the `MBeanServer` instance, if necessary.
    `MBeanServer` | `getObject()`
    `Class<? extends MBeanServer>` | `getObjectType()`
    `boolean` | `isSingleton()`
    `protected MBeanServer` | `locateMBeanServer(String agentId)` Attempt to locate an existing `MBeanServer`.
    `void` | `setAgentId(String agentId)` Set the agent id of the `MBeanServer` to locate.
    `void` | `setDefaultDomain(String defaultDomain)` Set the default domain to be used by the `MBeanServer`, to be passed to `MBeanServerFactory.createMBeanServer()` or `MBeanServerFactory.findMBeanServer()`.
    `void` | `setLocateExistingServerIfPossible(boolean locateExistingServerIfPossible)` Set whether or not the `MBeanServerFactoryBean` should attempt to locate a running `MBeanServer` before creating one.
    `void` | `setRegisterWithFactory(boolean registerWithFactory)` Set whether to register the `MBeanServer` with the `MBeanServerFactory`, making it available through `MBeanServerFactory.findMBeanServer()`.

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

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

- - ### 字段详细资料

    - #### logger

          protected final Log logger

  - ### 构造器详细资料

    - #### MBeanServerFactoryBean

          public MBeanServerFactoryBean()

  - ### 方法详细资料

    - #### setLocateExistingServerIfPossible

          public void setLocateExistingServerIfPossible(boolean locateExistingServerIfPossible)

      Set whether or not the `MBeanServerFactoryBean` should attempt to locate a running `MBeanServer` before creating one.

      Default is `false`.

    - #### setAgentId

          public void setAgentId(String agentId)

      Set the agent id of the `MBeanServer` to locate.

      Default is none. If specified, this will result in an automatic attempt being made to locate the attendant MBeanServer, and (importantly) if said MBeanServer cannot be located no attempt will be made to create a new MBeanServer (and an MBeanServerNotFoundException will be thrown at resolution time).

      Specifying the empty String indicates the platform MBeanServer.

      另请参阅:
        `MBeanServerFactory.findMBeanServer(String)`

    - #### setDefaultDomain

          public void setDefaultDomain(String defaultDomain)

      Set the default domain to be used by the `MBeanServer`, to be passed to `MBeanServerFactory.createMBeanServer()` or `MBeanServerFactory.findMBeanServer()`.

      Default is none.

      另请参阅:
        `MBeanServerFactory.createMBeanServer(String)`, `MBeanServerFactory.findMBeanServer(String)`

    - #### setRegisterWithFactory

          public void setRegisterWithFactory(boolean registerWithFactory)

      Set whether to register the `MBeanServer` with the `MBeanServerFactory`, making it available through `MBeanServerFactory.findMBeanServer()`.
      另请参阅:
        `MBeanServerFactory.createMBeanServer()`, `MBeanServerFactory.findMBeanServer(java.lang.String)`

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws MBeanServerNotFoundException

      Creates the `MBeanServer` instance.
      指定者:
        `afterPropertiesSet` 在接口中 `org.springframework.beans.factory.InitializingBean`
      抛出:
        `MBeanServerNotFoundException`

    - #### locateMBeanServer

          protected MBeanServer locateMBeanServer(@Nullable
                                                  String agentId)
                                           throws MBeanServerNotFoundException

      Attempt to locate an existing `MBeanServer`. Called if `locateExistingServerIfPossible` is set to `true`.

      The default implementation attempts to find an `MBeanServer` using a standard lookup. Subclasses may override to add additional location logic.

      参数:
        `agentId` - the agent identifier of the MBeanServer to retrieve. If this parameter is `null`, all registered MBeanServers are considered.
      返回:
        the `MBeanServer` if found
      抛出:
        `MBeanServerNotFoundException` - if no `MBeanServer` could be found
      另请参阅:
        `setLocateExistingServerIfPossible(boolean)`, `JmxUtils.locateMBeanServer(String)`, `MBeanServerFactory.findMBeanServer(String)`

    - #### createMBeanServer

          protected MBeanServer createMBeanServer(@Nullable
                                                  String defaultDomain,
                                                  boolean registerWithFactory)

      Create a new `MBeanServer` instance and register it with the `MBeanServerFactory`, if desired.
      参数:
        `defaultDomain` - the default domain, or `null` if none
        `registerWithFactory` - whether to register the `MBeanServer` with the `MBeanServerFactory`
      另请参阅:
        `MBeanServerFactory.createMBeanServer()`, `MBeanServerFactory.newMBeanServer()`

    - #### getObject

          @Nullable
          public MBeanServer getObject()

      指定者:
        `getObject` 在接口中 `org.springframework.beans.factory.FactoryBean<MBeanServer>`

    - #### getObjectType

          public Class<? extends MBeanServer> getObjectType()

      指定者:
        `getObjectType` 在接口中 `org.springframework.beans.factory.FactoryBean<MBeanServer>`

    - #### isSingleton

          public boolean isSingleton()

      指定者:
        `isSingleton` 在接口中 `org.springframework.beans.factory.FactoryBean<MBeanServer>`

    - #### destroy

          public void destroy()

      Unregisters the `MBeanServer` instance, if necessary.
      指定者:
        `destroy` 在接口中 `org.springframework.beans.factory.DisposableBean`