所有类


java.lang.management
类 ManagementFactory

java.lang.Object
  继承者 java.lang.management.ManagementFactory

public class ManagementFactory
   
   
   
   
   
extends Object

ManagementFactory 类是一种工厂类,用于获取 Java 平台的托管 Bean。此类由静态方法组成,每种静态方法都会返回一个或多个表示 Java 虚拟机组件的管理接口的平台 MXBean

应用程序可以采用以下方式访问平台 MXBean:

  • 直接访问 MXBean 接口
    1. 通过静态工厂方法获得 MXBean 实例,从本地访问正在运行的虚拟机的 MXBean。
    2. 构造一个 MXBean 代理实例,以通过调用 newPlatfromMXBeanProxy 将方法调用转发到给定的 MBeanServer。构造代理通常是为了远程访问另一个正在运行的虚拟机的 MXBean。
  • 通过 MBeanServer 间接地访问 MXBean 接口
    1. 通过平台 MBeanServer 本地访问 MXBean 或通过特定的 MBeanServerConnection 远程访问 MXBean。MXBean 的属性和操作仅使用 JMX 开放类型,包括在 OpenType 中定义的基本数据类型 CompositeDataTabularData。映射关系在下面指定。

平台 MXBean

平台 MXBean 是一种托管 Bean,它符合 JMX Instrumentation Specification,仅使用以下所描述的一组基本数据类型。JMX 管理应用程序和平台 MBeanServer 可以进行互操作,而无需 MXBean 特定数据类型的类。JMX 连接器服务器和连接器客户机之间传送的数据类型为开放类型,而这就允许不同版本进行互操作。

平台 MXBean 接口仅使用以下数据类型:

  • 基本类型,如 intlongboolean 等等
  • 基本类型的包装器类(如 IntegerLongBoolean 等等)和 String
  • Enum
  • 仅定义 getter 方法和具有 CompositeData 参数的静态 from 方法的类,以便将输入的 CompositeData 转换为该类的实例
  • List<E> 其中 E 为基本类型、包装类、枚举类或支持从 CompositeData 转换到此类的类
  • Map<K,V> 其中 KV 为基本类型、包装类、枚举类或支持从 CompositeData 转换到此类的类

当通过 MBeanServer 访问平台 MXBean 的属性或操作时,将按以下方式对数据类型进行映射:

  • 基本类型或包装器类映射到相同的类型。
  • Enum 映射到 String(其值为枚举常数的名称)。
  • 仅定义 getter 方法和具有 CompositeData 参数的 from 方法的类映射到 CompositeData
  • Map<K,V> 映射到 TabularData,后者的行类型为 CompositeType,此类型具有两个项,其名称分别为 "key""value",项类型分别为 KV 对应的映射类型,"key" 为索引。
  • List<E> 映射到数组,该数组中的元素类型为 E 的映射类型。
  • 元素类型为 E 的数组映射到具有相同维数的数组,该数组的元素类型为 E 的映射类型。
平台 MXBean 的 MBeanInfo 将属性和操作的数据类型描述为上述指定要映射到的基本类型或开放类型。

例如,MemoryMXBean 接口具有以下 gettersetter 方法:

 public MemoryUsage getHeapMemoryUsage();
 public boolean isVerbose();
 public void setVerbose(boolean value);
 
MemoryMXBeanMBeanInfo 中的这些属性的名称和类型如下:
属性名称 类型
HeapMemoryUsage CompositeData representing MemoryUsage
Verbose boolean

实现注意事项:

上面指定的映射可以在每个平台 MXBean 的实现中完成。一个不错的实现选择就是将 MXBean 作为动态 MBean 实现。

MXBean 名称

Java 虚拟机的每个平台 MXBean 都具有惟一的 ObjectName,以在平台 MBeanServer 中注册。Java 虚拟机具有以下管理接口的单一实例:
管理接口 对象名称
ClassLoadingMXBean java.lang:type=ClassLoading
MemoryMXBean java.lang:type=Memory
ThreadMXBean java.lang:type=Threading
RuntimeMXBean java.lang:type=Runtime
OperatingSystemMXBean java.lang:type=OperatingSystem

Java 虚拟机具有以下管理接口的零个或一个实例:

管理接口 对象名称
CompilationMXBean java.lang:type=Compilation

Java 虚拟机可能具有以下管理接口的一个或多个实例。

管理接口 对象名称
GarbageCollectorMXBean java.lang:type=GarbageCollector,name=collector's name
MemoryManagerMXBean java.lang:type=MemoryManager,name=manager's name
MemoryPoolMXBean java.lang:type=MemoryPool,name=pool's name

从以下版本开始:
1.5
另请参见:
JMX Specification., Access Management Metrics, LoggingMXBean

字段摘要
static String CLASS_LOADING_MXBEAN_NAME
          ClassLoadingMXBeanObjectName 的字符串表示形式。
static String COMPILATION_MXBEAN_NAME
          CompilationMXBeanObjectName 的字符串表示形式。
static String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
          GarbageCollectorMXBeanObjectName 中的域名和类型键属性。
static String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
          MemoryManagerMXBeanObjectName 中的域名和类型键属性。
static String MEMORY_MXBEAN_NAME
          MemoryMXBeanObjectName 的字符串表示形式。
static String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
          MemoryPoolMXBeanObjectName 中的域名和类型键属性。
static String OPERATING_SYSTEM_MXBEAN_NAME
          OperatingSystemMXBeanObjectName 的字符串表示形式。
static String RUNTIME_MXBEAN_NAME
          RuntimeMXBeanObjectName 的表示形式。
static String THREAD_MXBEAN_NAME
          ThreadMXBeanObjectName 的字符串表示形式。
 
方法摘要
static ClassLoadingMXBean getClassLoadingMXBean()
          返回 Java 虚拟机的类加载系统的托管 Bean。
static CompilationMXBean getCompilationMXBean()
          返回 Java 虚拟机的编译系统的托管 Bean。
static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
          返回 Java 虚拟机中的 GarbageCollectorMXBean 对象列表。
static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
          返回 Java 虚拟机中的 MemoryManagerMXBean 对象列表。
static MemoryMXBean getMemoryMXBean()
          返回 Java 虚拟机的内存系统的托管 Bean。
static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
          返回 Java 虚拟机中的 MemoryPoolMXBean 对象列表。
static OperatingSystemMXBean getOperatingSystemMXBean()
          返回运行 Java 虚拟机的操作系统的托管 Bean。
static MBeanServer getPlatformMBeanServer()
          返回平台 MBeanServer
static RuntimeMXBean getRuntimeMXBean()
          返回 Java 虚拟机的运行时系统的托管 Bean。
static ThreadMXBean getThreadMXBean()
          返回 Java 虚拟机的线程系统的托管 Bean。
static
<T> T
newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface)
          返回用于给定 MXBean 名称的平台 MXBean 接口的代理,以便通过给定 MBeanServerConnection 转发其方法调用。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

CLASS_LOADING_MXBEAN_NAME

public static final String CLASS_LOADING_MXBEAN_NAME
ClassLoadingMXBeanObjectName 的字符串表示形式。

另请参见:
常量字段值

COMPILATION_MXBEAN_NAME

public static final String COMPILATION_MXBEAN_NAME
CompilationMXBeanObjectName 的字符串表示形式。

另请参见:
常量字段值

MEMORY_MXBEAN_NAME

public static final String MEMORY_MXBEAN_NAME
MemoryMXBeanObjectName 的字符串表示形式。

另请参见:
常量字段值

OPERATING_SYSTEM_MXBEAN_NAME

public static final String OPERATING_SYSTEM_MXBEAN_NAME
OperatingSystemMXBeanObjectName 的字符串表示形式。

另请参见:
常量字段值

RUNTIME_MXBEAN_NAME

public static final String RUNTIME_MXBEAN_NAME
RuntimeMXBeanObjectName 的表示形式。

另请参见:
常量字段值

THREAD_MXBEAN_NAME

public static final String THREAD_MXBEAN_NAME
ThreadMXBeanObjectName 的字符串表示形式。

另请参见:
常量字段值

GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE

public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
GarbageCollectorMXBeanObjectName 中的域名和类型键属性。GarbageCollectorMXBean 的惟一 ObjectName 可以通过在此字符串后附加 ",name=collector's name" 形成。

另请参见:
常量字段值

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部