关于 MBean 和 MXBean ,我有以下问题:
答案 0 :(得分:45)
MXBean
只是一种特殊的MBean
。主要区别在于MXBean
限制数据类型,以便它们与潜在客户“更兼容”。
例如:MBean
可以公开数据类型Foo
的属性。现在,客户端还需要使用此类型Foo
来理解属性。
MXBean
尝试将数据类型限制为“已经可用” - java.lang.*
等。
答案 1 :(得分:14)
MXBean是一个MBean,它被约束为开放类型,基本上是原始类型,字符串及其组合。由于这些限制,MXBean可以在没有类加载的情况下使用,这使得它们即使与非Java客户端也可以互操作。您可以在此处找到规范:http://docs.oracle.com/javase/7/docs/api/javax/management/package-summary.html#package_description
答案 2 :(得分:4)
MBeans
可以是任何java对象,我们可以使用方法存储/检索Serializable/Externalizable
个对象。根据对象中使用的设计模式,我们可以区分标准(静态)或动态。建议维护以MBean
MXBeans
仅引用预定义的一组类型。建议维护接口类名称后跟MXBean
。实现Dynamic或cusotmized JavaBean
的接口。使用MXBean,我们可以促进任何客户端使用MBean。
答案 3 :(得分:4)
MBeans:
可以是任何java对象,我们可以使用方法存储/检索Serializable / Externalizable对象。
根据对象中使用的设计模式,我们可以区分标准(静态)或动态。建议维护接口类名称后缀为MBean。
MXBeans:
仅引用预定义的一组类型。建议维护以MXBean为后缀的Interface类名。实现Dynamic或自定义JavaBean的接口。
使用MXBean,我们可以帮助任何客户端使用MBean。使用MXBean所需的其他详细信息。