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