モジュール java.management
パッケージ javax.management

クラスStandardMBean

java.lang.Object
javax.management.StandardMBean
すべての実装されたインタフェース:
DynamicMBean, MBeanRegistration
直系の既知のサブクラス:
StandardEmitterMBean

public class StandardMBean extends Object implements DynamicMBean, MBeanRegistration

Javaインタフェースのリフレクションによって管理インタフェースを決定するMBeanです。

このクラスは、Standard MBeanの使用における管理インタフェースの概念の柔軟性を向上させます。 JMX仕様に説明されているStandard MBeanのパターンの単純な使用方法には、MBeanの実装クラスと管理インタフェース間に固定した関係があると説明されています(つまり、実装クラスがThingの場合、管理インタフェースはThingMBeanでなければならない)。 このクラスは、実装クラスとインタフェース・クラス間の名前の関連性を必要とせず、Javaインタフェースによる管理インタフェースの指定に役立ちます。

MBeanからDynamicMBeanを作成することにより、このクラスは、MBeanが実装する任意のインタフェースを管理インタフェースとして選択できます。ただし、JMXパターンに準拠するインタフェースである必要があります(取得メソッドまたは設定メソッドによって定義された属性など)。

このクラスは、DynamicMBeanインタフェースから返されるMBeanInfoにカスタムの記述と名前を割り当てることができるフックも提供します。

このクラスを使って、任意の実装クラス名Implと、任意のインタフェースIntfで定義された管理インタフェース(現在のStandard MBean用)を指定してMBeanを作成できます。一般に、次のいずれかの作成方法を選択します。

  • publicコンストラクタStandardMBean(impl,interface)を使用
         MBeanServer mbs;
         ...
         Impl impl = new Impl(...);
         StandardMBean mbean = new StandardMBean(impl, Intf.class, false);
         mbs.registerMBean(mbean, objectName);
         
  • StandardMBeanのサブクラス化
         public class Impl extends StandardMBean implements Intf {
            public Impl() {
              super(Intf.class, false);
           }
           // implement methods of Intf
         }
    
         [...]
    
         MBeanServer mbs;
         ....
         Impl impl = new Impl();
         mbs.registerMBean(impl, objectName);
         

いずれの場合も、ImplクラスはインタフェースIntfを実装する必要があります。

実装クラスとインタフェース・クラス間の名前の関連性に基づいたStandard MBeanも、引き続き使用可能です。

このクラスは、MXBeanの構築にも使用できます。 使用法は、上の例のコンストラクタに渡されるfalseパラメータまたはsuper(...)の呼出しが代わりにtrueになることを除き、Standard MBeanとまったく同じです。

導入されたバージョン:
1.5