java - 基于注解的JMX

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

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

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

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

第二步将使用字节码操作工具(例如 ASM)完成。可以用ASM来做吗?您将如何实现这样的功能?

最佳答案

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

关于java - 基于注解的JMX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15189389/

相关文章:

java - 将 BlendMode 添加到 JavaFX 中的裁剪节点

java - 扩展泛型类但削弱子类中的泛型绑定(bind)

java - 在ubuntu 14.04LTS上安装webstorm但找不到jdk

java - 在jpql中使用 "similar to"或 "~*"

java - 动态注入(inject) Google Guice bean

Java:变量已在方法中定义

java - sbt引发[错误]服务器访问错误: Connection refused (Connection refused) url=http://repo. typesafe.com/

jquery - Play Framework jquery webjar 集成不起作用

java - dropwizard-guice : Order of Managed objects

scala - 如何避免Scala中的依赖注入(inject)?