【发布时间】:2013-11-18 14:24:37
【问题描述】:
我很难理解如何利用/使用MBeanInfo(以及相关的MBeanAttributeInfo、ModelMBeanInfo 等)以及与之相关的Descriptors。
据我了解,MBean*Info 就像一个 Class 对象,其中包含有关可用方法/属性/构造函数等的信息。此外,据我所知,这些信息是不可变的,并在此过程中为我们生成MBeanServer.registerMBean 或使用 StandardMBean 类(也许 MBeanServer 实际上使用 StandardMbean 类?),它使用反射来生成此信息。这或多或少是正确的吗?
另外,我想存在ModelMBean 的概念,我们可以通过编程方式将自己的MBeanInfo 传递给它。如果可以通过带有反射的StandardMbean 实现相同的目的,那么这样做有什么意义?
最后,Descriptors 到位,允许用户通过以描述符的形式提供(名称,值)对来扩展 mbean 上的信息。这可以附加到任何MBean*Info 类(构造函数、属性、操作等)。但是,它可以在 Info 对象的构造过程中附加,因为它是不可变的。因此,使用StandardMbean,它自己生成这个信息,没有办法注入额外的信息,因为我们从MBeanInfo得到的描述符也是不可变的......我在这里遗漏了什么吗?向MBean 上的构造函数/字段/方法的描述符添加额外信息的简单方法是什么?
【问题讨论】: