我对MBean和MXBean有以下问题:
- MBean和MXBean之间有什么区别?
- MBean和MXBean的用例是什么?
MXBean
是一种特殊类型的MBean
,主要区别在于MXBean
限制了数据类型,使其“更兼容”潜在客户端。
例如:一个MBean
可以公开Foo
数据类型的属性。现在客户端也需要拥有这个类型Foo
才能理解该属性。
MXBean
试图将数据类型限制为“已经可用”的类型,如java.lang.*
等。
请参见此教程。
MXBean 是一种受限于基本类型、字符串和它们的组合的 MBean。由于这些限制,MXBean 可以在不进行类加载的情况下使用,这使得它们可以与非 Java 客户端互操作。您可以在这里找到规范:http://docs.oracle.com/javase/7/docs/api/javax/management/package-summary.html#package_description
MBeans :
可以是任何Java对象,我们可以使用方法存储/检索Serializable/Externalizable对象。根据对象中使用的设计模式,我们可以区分标准(静态)或动态。建议将接口类名后缀命名为MBean。
MXBeans :
仅引用预定义的一组类型。建议将接口类名后缀命名为MXBean。实现动态或自定义JavaBean的接口。
使用MXBean,我们可以方便任何客户端使用MBeans。需要其他详细信息才能使用MXBean。
MBeans
可以是任何Java对象,在其中我们可以使用方法存储/检索Serializable / Externalizable
对象。根据对象中使用的设计模式,我们可以区分标准(静态)或动态。建议将接口类名称后缀为MBean。
MXBeans
仅引用预定义的一组类型。建议将接口类名称后缀为MXBean
。实现动态或定制化JavaBean
的接口。使用MXBean,我们可以方便任何客户端使用MBeans。