Java 抽象或注释类,而不是作为MXBean接口

Java 抽象或注释类,而不是作为MXBean接口,java,class,interface,jmx,Java,Class,Interface,Jmx,有没有一种方法可以使用抽象类或带注释的类作为MXBean描述符?我有如下界面: @MXBean public interface Peer { public String getName(); } 并希望MXBean在类中与更多仅限于本地端的方法相结合,如: public class PeerCombinedMXBean { // Expose this as MXBean attribute public String getName() { ... } /

有没有一种方法可以使用抽象类或带注释的类作为MXBean描述符?我有如下界面:

@MXBean
public interface Peer {
    public String getName();
}
并希望MXBean在类中与更多仅限于本地端的方法相结合,如:

public class PeerCombinedMXBean {
    // Expose this as MXBean attribute
    public String getName() { ... }

    // This method is local-instance-oriented
    public boolean isValid() { ... }
}
我需要上面这样的模型来避免代理对象中的链,而不是使用复杂的半代理实例,如:

PeerCombinedMXBean peer = JMX.newMXBeanProxy(connection, name, PeerCombinedMXBean.class);
if (peer.isValid()) System.out.println(peer.getName());

编辑
这个问题涉及到。他们取得了什么进展?我现在可以安全地将MBean与注释一起使用吗?

我为此所做的是编写一个自定义注释,并将其放置在方法或属性上。然后,我以这样一种方式实现了,它解析出相关类上的注释,然后将它们注册到PlatformMBeanServer。据我所知,目前还没有这方面的公开实现,在我自己做这件事之前,我也对这个主题进行了广泛的搜索

例如,下面是我希望从JConsole管理的类:

public class Foo
{
  // In JMX Console
  @Managed
  private boolean isBar;

  // Not in JMX Console
  private boolean isFoo;

  // In JMX Console
  @Managed
  public String getClassName()
  {
    return Foo.class.getName();
  }
}

然后,当我的应用程序启动时,我使用我的实现注册这个类的一个实例,并解析注释。

我也在思考这个问题,但是现在需要编写的代码太多了,所以如果我有时间,我会在以后补上这个想法。顺便说一句。如何创建类(而不是接口)的代理实例?这个接口是什么?在哪里可以找到它?你是说JMX客户端可以使用它?我想您可以使用反射和代理类来动态生成一个。