有什么区别:
- 标准 MBean
- 动态 MBean
各自的优缺点是什么?我们何时应该选择这两个组件中的任何一个来管理资源?
标准 mbean 具有固定的元数据,在 MBean 的生命周期内不会更改。动态 MBean 动态定义它们的元数据,并且可以修改和重新发布它们的元数据。想想这个与 Java 的 [糟糕] 人为的类比:假设您编写了一个列出目录中文件数量的类。标准的类方法可能如下所示:
public int getFileCount(String directoryName)
另一方面,这个类的 Dynamic MBean 版本开始时没有方法,但是当它启动时,它会扫描可用的目录,并为找到的每个目录创建一个新方法:
public int getFileCountDir1();
public int getFileCountDir2();
....
public int getFileCountDirN();
所以这不是一个非常有用的设置,但是假设您想要创建一个显示所有 JVM 系统属性的 MBean。嗯.... 系统属性发生变化... 没有合理的方法可以提前知道哪些属性键将被定义,因此这将更好地表示动态 MBean 的优点。
优点和缺点实际上归结为: