2013-04-25 50 views

回答

7

標準mbean具有固定的元數據,它在MBean的生命週期中不會更改。動態MBean動態定義其元數據,並可以修改和重新發布他們的元數據。想一下這個[非常]人爲的Java類比:假設你編寫了一個列出目錄中文件數量的類。標準的類方法可能是:

public int getFileCount(String directoryName)

在另一方面,這個類的動態MBean的版本將沒有方法開始,但是當它啓動時,它會掃描目錄可用,並創建一個每個目錄的新方法發現:

public int getFileCountDir1(); 
public int getFileCountDir2(); 
.... 
public int getFileCountDirN(); 

所以這不是一個非常有用的設置,但假設你想創建一個顯示所有的JVM的系統屬性的MBean。那麼......系統屬性會改變......並且沒有合理的方法來知道哪些屬性鍵會提前定義,以便更好地表示Dynamic MBean的優點。

的優點和利弊真的歸結爲:

  1. 標準MBean很容易創建,和現有的類的實例可以被包裝和暴露爲標準MBean。
  2. 動態MBean在服務於有用的目的時很酷,但它們實現起來更加可行。
相關問題