模块  java.management
软件包  javax.management

Class MBeanServerInvocationHandler

  • 实现的所有接口
    InvocationHandler

    public class MBeanServerInvocationHandler
    extends Object
    implements InvocationHandler

    InvocationHandler ,它通过MBean服务器将MBean管理接口中的方法转发给MBean。

    给定MBeanServerConnection ,该MBean服务器中的MBean的ObjectName ,以及使用Standard MBean或MXBean的模式描述MBean的管理接口的Java接口Intf ,此类可用于构造MBean的代理。 代理实现接口Intf使得其所有方法通过MBean服务器转发到MBean。

    如果InvocationHandler用于MXBean,则方法的参数将从MXBean接口中声明的类型转换为相应的映射类型,并且返回值将从映射类型转换为声明的类型。 例如,使用该方法
    public List<String> reverse(List<String> list);
    并考虑到为映射类型List<String>String[] ,一个呼叫proxy.reverse(someList)将转换someListList<String>String[] ,调用MBean操作reverse ,然后转换返回String[]List<String>

    使用此调用处理程序在代理上调用时,方法Object.toString(),Object.hashCode()或Object.equals(Object)仅作为代理MBean上的方法转发到MBean服务器(如果它出现在代理的一个接口。 对于使用JMX.newMBeanProxyJMX.newMXBeanProxy创建的代理,这意味着该方法必须出现在Standard MBean或MXBean接口中。 否则这些方法具有以下行为:

    • toString()返回代理的字符串表示形式
    • hashCode()返回代理的哈希码,使得两个相等的代理具有相同的哈希码
    • 当且仅当Object参数与此代理具有相同的代理类时,equals(Object)才返回true,并且MBeanServerInvocationHandler具有相同的MBeanServerConnection和ObjectName; 如果其中一个MBeanServerInvocationHandler是使用参数构造的,则另一个必须使用相同的equals才能返回true。
    从以下版本开始:
    1.5