0

SpringのようなアノテーションベースのJMX機能をどのように実装しますか。クラスがマークされ@ManagedResourceたクラスのメソッドによってマークされている場合、 @ManagedOperationJMXを介して自動的に公開されます。

MBean表記でインターフェースを作成することは避けたいと思います。PlaywithGuiceフレームワークを使用しています。素朴なアプローチが最初に思い浮かびます:

  • Guiceが管理するすべてのクラスを反復処理します
  • クラスがアノテーションでマークされている場合は、MBeanアノテーションに適合する新しいインターフェースを作成します。クラスを修正します。修正されたクラスは、新しく作成されたインターフェイスを実装する必要があります。
  • クラスのインスタンスをMBeanサーバーに登録します。

2番目のステップは、ASMなどのバイトコード操作ツールを使用して実行されます。ASMでそれを行うことは可能ですか?そのような機能をどのように実装しますか?

4

1 に答える 1

1

技術的には、インターフェースは必要ありません。MBeanは完全にメタデータによって記述されます。DynamicMBeanの独自のカスタム実装を実装して、管理「インターフェース」の適切な説明を返すことができます(実際に前述のインターフェースを作成する必要はありません)。クレイジーなバイトコード操作は必要ありません。基本的なリフレクションだけです。

于 2013-03-03T18:58:14.283 に答える