基于注释的JMX

时间:2013-03-03 18:46:54

标签: java playframework guice java-bytecode-asm bytecode-manipulation

如何实现类似于基于注释的JMX功能的Spring。如果类被@ManagedResource标记,则标有@ManagedOperation的类的方法将通过JMX自动公开。

我想避免使用MBean表示法创建接口。我正在使用Play with Guice框架。首先想到天真的方法:

  • 迭代Guice管理的所有课程
  • 如果使用注释标记类,请创建符合MBean表示法的新接口。修改类,修改后的类应该实现新创建的接口。
  • 在MBean服务器中注册类的实例。

第二步将使用字节码操作工具完成,例如ASM。是否可以使用ASM进行操作?你会如何实现这样的功能?

1 个答案:

答案 0 :(得分:1)

从技术上讲,您不需要界面。 MBean完全由元数据描述。您可以实现自己的DynamicMBean自定义实现,它返回管理“接口”的相应描述(不实际创建所述接口)。没有疯狂的字节码操作,只需要基本的反思。