|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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)