模块  java.management

Package javax.management.modelmbean

提供ModelMBean类的定义。 Model MBean是一个MBean,充当管理接口和底层受管资源之间的桥梁。 管理接口和受管资源都指定为Java对象。 可以使用不同的管理接口和托管资源多次重用相同的Model MBean实现,并且它可以提供常见功能,如持久性和缓存。

Model MBean实现了ModelMBean接口。 它是DynamicMBeangetMBeanInfo方法返回实现ModelMBeanInfo的对象。

每个MBean都有一个MBeanInfo其中包含有关MBean本身及其属性,操作,构造函数和通知的信息。 模型MBean使用Descriptor对此MBeanInfo进行了扩充 ,以(键,值)对的形式编码其他信息。 通常情况下, Descriptor s为实例DescriptorSupport

RequiredModelMBean提供标准的Model MBean实现。

下面的示例示出了正在使用模型Mbean使get一个的方法HashMap通过MBean服务器可管理。 MBean服务器没有其他方法可用。 HashMap这里没什么特别的。 来自任何公共类的公共方法可以以相同的方式公开以进行管理。

  import java.lang.reflect.Method;import java.util.HashMap;import javax.management.*;import javax.management.modelmbean.*;// ...MBeanServer mbs = MBeanServerFactory.createMBeanServer();// The MBean ServerHashMap map = new HashMap();// The resource that will be managed// Construct the management interface for the Model MBeanMethod getMethod = HashMap.class.getMethod("get", new Class[] {Object.class});ModelMBeanOperationInfo getInfo =    new ModelMBeanOperationInfo("Get value for key", getMethod);ModelMBeanInfo mmbi =    new ModelMBeanInfoSupport(HashMap.class.getName(),                              "Map of keys and values",                              null,  // no attributes                              null,  // no constructors                              new ModelMBeanOperationInfo[] {getInfo},                              null); // no notifications// Make the Model MBean and link it to the resourceModelMBean mmb = new RequiredModelMBean(mmbi);mmb.setManagedResource(map, "ObjectReference");// Register the Model MBean in the MBean ServerObjectName mapName = new ObjectName(":type=Map,name=whatever");mbs.registerMBean(mmb, mapName);// Resource can evolve independently of the MBeanmap.put("key", "value");// Can access the "get" method through the MBean Servermbs.invoke(mapName, "get", new Object[] {"key"}, new String[] {Object.class.getName()});// returns "value" 

Package Specification

从以下版本开始:
1.5