Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于注释的JMX_Java_Playframework_Guice_Java Bytecode Asm_Bytecode Manipulation - Fatal编程技术网

Java 基于注释的JMX

Java 基于注释的JMX,java,playframework,guice,java-bytecode-asm,bytecode-manipulation,Java,Playframework,Guice,Java Bytecode Asm,Bytecode Manipulation,您将如何实现基于JMX特性的类似Spring的注释。如果类由@ManagedResource标记,则用@ManagedOperation标记的类的方法将通过JMX自动公开 我希望避免使用MBean符号创建接口。我正在使用Play with Guice框架。首先想到的是天真的方法: 迭代Guice管理的所有类 若类用注释标记,那个么创建符合MBean表示法的新接口。修改类,修改后的类应实现新创建的接口 在MBean服务器中注册类的实例 第二步将使用字节码操作工具完成,例如ASM。是否可以使用A

您将如何实现基于JMX特性的类似Spring的注释。如果类由
@ManagedResource
标记,则用
@ManagedOperation
标记的类的方法将通过JMX自动公开

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

  • 迭代Guice管理的所有类
  • 若类用注释标记,那个么创建符合MBean表示法的新接口。修改类,修改后的类应实现新创建的接口
  • 在MBean服务器中注册类的实例

第二步将使用字节码操作工具完成,例如ASM。是否可以使用ASM执行此操作?您将如何实现这种功能?

从技术上讲,您不需要接口。MBean完全由元数据描述。您可以实现自己的自定义实现,该实现返回对管理“接口”的适当描述(无需实际创建所述接口)。不需要疯狂的字节码操作,只需要基本的反射。

太好了,这稍微容易一些=)