所有类


javax.management
类 StandardMBean

java.lang.Object
  继承者 javax.management.StandardMBean
所有已实现的接口:
DynamicMBean

public class StandardMBean
   
   
   
   
   
extends Object
implements DynamicMBean

一个管理接口由 Java 接口上的反射确定的 MBean。

在 Standard MBean 的使用中,此类为“管理接口”这一概念提供了更多灵活性。直接使用 JMX 规范中介绍的 Standard MBean 模式意味着在 MBean 的实现类与其管理接口之间存在着固定的关系(即如果实现类是 Thing,则管理接口必须是 ThingMBean)。此类能够保留指定带有 Java 接口的管理接口这一便捷性,同时无需在实现与接口类之间存在任何命名关系。

通过从 MBean 中生成 DynamicMBean,此类能够选择任何由 MBean 实现的接口作为其管理接口,但前提是它必须遵守 JMX 模式(即由 getter/setter 等定义的属性)。

此类还提供了一些挂钩,从而能够为由 DynamicMBean 接口返回的 MBeanInfo 提供自定义的描述和名称。

通过使用此类,可以使用以下两种常规方法之一创建 MBean,使用任何实现类名 Impl、由任何接口 Intf 定义的管理接口(就当前 Standard MBean 而言)作为参数:

  • 使用公共构造方法 StandardMBean(impl、interface)
         MBeanServer mbs;
         ...
         Impl impl = new Impl(...);
         StandardMBean mbean = new StandardMBean(impl, Intf.class);
         mbs.registerMBean(mbean, objectName);
         
  • 创建 StandardMBean 子类:
         public class Impl extends StandardMBean implements Intf {
            public Impl() {
              super(Intf.class);
           }
           // implement methods of Intf
         }
    
         [...]
    
         MBeanServer mbs;
         ....
         Impl impl = new Impl();
         mbs.registerMBean(impl, objectName);
         

在任何一种情况下,类 Impl 都必须实现接口 Intf

当然,基于实现和接口类之间的命名关系的 Standard MBean 仍然可用。

从以下版本开始:
1.5

构造方法摘要
protected StandardMBean(Class mbeanInterface)
          使用指定的 mbeanInterface 类从 this 中生成 DynamicMBean。
  StandardMBean(Object implementation, Class mbeanInterface)
          使用指定的 mbeanInterface 类从对象 implementation 中生成 DynamicMBean。
 
方法摘要
protected  void cacheMBeanInfo(MBeanInfo info)
          自定义挂钩:缓存为此对象构建的 MBeanInfo。
 Object getAttribute(String attribute)
          获得 Dynamic MBean 的特定属性的值。
 AttributeList getAttributes(String[] attributes)
          获得 Dynamic MBean 多个属性的值。
protected  MBeanInfo getCachedMBeanInfo()
          自定义挂钩:返回为此对象缓存的 MBeanInfo。
protected  String getClassName(MBeanInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanInfo 中使用的 className。
protected  MBeanConstructorInfo[] getConstructors(MBeanConstructorInfo[] ctors, Object impl)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanInfo 中使用的 MBeanConstructorInfo[]。
protected  String getDescription(MBeanAttributeInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanAttributeInfo 中使用的描述。
protected  String getDescription(MBeanConstructorInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanConstructorInfo 中使用的描述。
protected  String getDescription(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence)
          自定义挂钩:获取将用于由此 MBean 返回的 MBeanConstructorInfo 的第 sequence 个 BeanParameterInfo 的描述。
protected  String getDescription(MBeanFeatureInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanFeatureInfo 中使用的描述。
protected  String getDescription(MBeanInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanInfo 中使用的描述。
protected  String getDescription(MBeanOperationInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanOperationInfo 中使用的描述。
protected  String getDescription(MBeanOperationInfo op, MBeanParameterInfo param, int sequence)
          自定义挂钩:获取将用于由此 MBean 返回的 MBeanOperationInfo 的第 sequence 个 MBeanParameterInfo 的描述。
protected  int getImpact(MBeanOperationInfo info)
          自定义挂钩:获取将在由此 MBean 返回的 MBeanOperationInfo 中使用的操作的 impact 标志。
 Object getImplementation()
          获取此 MBean 的实现。
 Class getImplementationClass()
          获取此 MBean 的实现的类。
 MBeanInfo getMBeanInfo()
          获取此 MBean 的 MBeanInfo
 Class getMBeanInterface()
          获取此 MBean 的管理接口。
protected  String getParameterName(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence)
          自定义挂钩:获取将用于由此 MBean 返回的 MBeanConstructorInfo 的第 sequence 个 BeanParameterInfo 的名称。
protected  String getParameterName(MBeanOperationInfo op, MBeanParameterInfo param, int sequence)
          自定义挂钩:获取将用于由此 MBean 返回的 MBeanOperationInfo 的第 sequence 个 MBeanParameterInfo 的名称。
 Object invoke(String actionName, Object[] params, String[] signature)
          允许在 Dynamic MBean 上调用某个操作。
 void setAttribute(Attribute attribute)
          设置 Dynamic MBean 的特定属性的值。
 AttributeList setAttributes(AttributeList attributes)
          设置 Dynamic MBean 多个属性的值。
 void setImplementation(Object implementation)
          替换包装在此对象中的实现对象。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

StandardMBean

public StandardMBean(Object implementation,
                     Class mbeanInterface)
              throws NotCompliantMBeanException

使用指定的 mbeanInterface 类从对象 implementation 中生成 DynamicMBean。

参数:
implementation - 此 MBean 的实现。
mbeanInterface - 由此 MBean 实现导出的管理接口。如果为 null,则此对象将使用标准 JMX 设计模式来确定与指定实现关联的管理接口。
抛出:
IllegalArgumentException - 如果给定的 implementation 为 null
NotCompliantMBeanException - 如果 mbeanInterface 不遵守管理接口的 JMX 设计模式,或者给定的 implementation 没有实现指定的接口。

StandardMBean

protected StandardMBean(Class mbeanInterface)
                 throws NotCompliantMBeanException

使用指定的 mbeanInterface 类从 this 中生成 DynamicMBean。

调用 this(this、mbeanInterface)。此构造方法是为子类保留的。

参数:
mbeanInterface - 由此 MBean 导出的管理接口。
抛出:
NotCompliantMBeanException - 如果 mbeanInterface 不遵从管理接口的 JMX 设计模式,或者 this 没有实现指定的接口。
方法详细信息

setImplementation

public void setImplementation(Object implementation)
                       throws NotCompliantMBeanException

替换包装在此对象中的实现对象。

参数:
implementation - 此 MBean 的新实现。implementation 对象必须实现构造此 StandardMBean 时提供的 MBean 接口。
抛出:
IllegalArgumentException - 如果给定的 implementation 为 null
NotCompliantMBeanException - 如果给定的 implementation 没有实现构造时提供的 MBean 接口。
另请参见:
getImplementation()

getImplementation

public Object getImplementation()
获取此 MBean 的实现。

返回:
此 MBean 的实现。
另请参见:
setImplementation(java.lang.Object)

getMBeanInterface

public final Class getMBeanInterface()
获取此 MBean 的管理接口。

返回:
此 MBean 的管理接口。

getImplementationClass

public Class getImplementationClass()
获取此 MBean 的实现的类。

返回:
此 MBean 的实现的类。

getAttribute

public Object getAttribute(String attribute)
                    throws AttributeNotFoundException,
                           MBeanException,
                           ReflectionException
从接口 DynamicMBean 复制的描述
获得 Dynamic MBean 的特定属性的值。

指定者:
接口 DynamicMBean 中的 getAttribute
参数:
attribute - 要检索的属性名
返回:
所检索的属性的值。
抛出:
AttributeNotFoundException
MBeanException - 包装由 MBean 的 getter 所抛出的 java.lang.Exception
ReflectionException - 包装试图调用 getter 时所抛出的 java.lang.Exception
另请参见:
DynamicMBean.setAttribute(javax.management.Attribute)

setAttribute

public void setAttribute(Attribute attribute)
                  throws AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException
从接口 DynamicMBean 复制的描述
设置 Dynamic MBean 的特定属性的值。

指定者:
接口 DynamicMBean 中的 setAttribute
参数:
attribute - 要设置的属性的标识及其要设置成的值。
抛出:
AttributeNotFoundException
InvalidAttributeValueException
MBeanException - 包装由 MBean 的 setter 所抛出的 java.lang.Exception
ReflectionException - 包装试图调用 setter 时所抛出的 java.lang.Exception
另请参见:
DynamicMBean.getAttribute(java.lang.String)

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部