2013-04-25 2 views

答えて

7

標準のMBeanには、MBeanの存続期間中に変更されない固定メタデータがあります。動的MBeanは、そのメタデータをその場で定義し、そのメタデータを変更して再公開することができます。このJavaについての類推を考えてみましょう。ディレクトリ内のファイル数を列挙したクラスを作成したとしましょう。標準クラスのメソッドは次のようになります。

一方

public int getFileCount(String directoryName)

、このクラスの動的なMBeanのバージョンはいない方法で開始すると、それが起動したとき、それはディレクトリが利用可能でスキャンし、Aを作成見つかった各ディレクトリのための新しい方法:

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

だからそれは非常に便利なセットアップではありませんが、あなたはすべてのJVMのシステムのプロパティを表示するMBeanを作成したいとします。まあ、システムのプロパティが変わってしまいます...そして、事前に定義されているプロパティキーを知る妥当な方法がないので、Dynamic MBeanが良いものをより良く表現できるようになります。

賛否両論本当に降りてくるまで:

  1. 標準MBeanは作成が容易であり、既存のクラスのインスタンスは、標準MBeanとしてラップされ、露出させることができます。
  2. 動的MBeanは有用な目的を果たすときにはクールですが、実装するにはかなりの努力が必要です。
関連する問題