- java.lang.Object
-
- javax.management.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)
将转换someList
从List<String>
至String[]
,调用MBean操作reverse
,然后转换返回String[]
为List<String>
。使用此调用处理程序在代理上调用时,方法Object.toString(),Object.hashCode()或Object.equals(Object)仅作为代理MBean上的方法转发到MBean服务器(如果它出现在代理的一个接口。 对于使用
JMX.newMBeanProxy
或JMX.newMXBeanProxy
创建的代理,这意味着该方法必须出现在Standard MBean或MXBean接口中。 否则这些方法具有以下行为:- toString()返回代理的字符串表示形式
- hashCode()返回代理的哈希码,使得两个相等的代理具有相同的哈希码
- 当且仅当Object参数与此代理具有相同的代理类时,equals(Object)才返回true,并且MBeanServerInvocationHandler具有相同的MBeanServerConnection和ObjectName; 如果其中一个
MBeanServerInvocationHandler
是使用类
参数构造的,则另一个必须使用相同的类
为equals
才能返回true。
- 从以下版本开始:
- 1.5
-
-
构造方法摘要
构造方法 构造器 描述 MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName)
调用处理程序,它通过MBean服务器将方法转发到Standard MBean。MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean)
调用处理程序,可以将方法通过MBean服务器转发到Standard MBean或MXBean。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 MBeanServerConnection
getMBeanServerConnection()
MBean服务器连接,通过该连接转发使用此处理程序的代理方法。ObjectName
getObjectName()
要转发方法的MBean服务器中MBean的名称。boolean
isMXBean()
如果为true,则代理用于MXBean,并将适当的映射应用于方法参数和返回值。static <T> T
newProxyInstance(MBeanServerConnection connection, ObjectName objectName, 类<T> interfaceClass, boolean notificationBroadcaster)
通过将其方法通过给定的MBean服务器转发到指定的MBean,返回实现给定接口的代理。-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 java.lang.reflect.InvocationHandler
invoke
-
-
-
-
构造方法详细信息
-
MBeanServerInvocationHandler
public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName)
调用处理程序,它通过MBean服务器将方法转发到Standard MBean。 可以调用此构造函数而不是依赖于
JMX.newMBeanProxy
,例如,如果您需要提供不同的ClassLoader
到Proxy.newProxyInstance
。此构造函数不适用于MXBean。 请使用
MBeanServerInvocationHandler(MBeanServerConnection, ObjectName, boolean)
。 此构造函数等效于new MBeanServerInvocationHandler(connection, objectName, false)
。- 参数
-
connection
- MBean服务器连接,通过该连接将转发使用此处理程序的代理的所有方法。 -
objectName
- 将转发方法的MBean服务器中的MBean的名称。
-
MBeanServerInvocationHandler
public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean)
调用处理程序,可以将方法通过MBean服务器转发到Standard MBean或MXBean。 可以调用此构造函数而不是依赖于
JMX.newMXBeanProxy
,例如,如果您需要提供不同的ClassLoader
到Proxy.newProxyInstance
。- 参数
-
connection
- MBean服务器连接,通过该连接将转发使用此处理程序的代理的所有方法。 -
objectName
- 将转发方法的MBean服务器中的MBean的名称。 -
isMXBean
- 如果为true,则代理服务器用于MXBean
,并且适当的映射将应用于方法参数和返回值。 - 从以下版本开始:
- 1.6
-
-
方法详细信息
-
getMBeanServerConnection
public MBeanServerConnection getMBeanServerConnection()
MBean服务器连接,通过该连接转发使用此处理程序的代理方法。
- 结果
- MBean服务器连接。
- 从以下版本开始:
- 1.6
-
getObjectName
public ObjectName getObjectName()
要转发方法的MBean服务器中MBean的名称。
- 结果
- 对象名称。
- 从以下版本开始:
- 1.6
-
isMXBean
public boolean isMXBean()
如果为true,则代理用于MXBean,并将适当的映射应用于方法参数和返回值。
- 结果
- 代理是否适用于MXBean。
- 从以下版本开始:
- 1.6
-
newProxyInstance
public static <T> T newProxyInstance(MBeanServerConnection connection, ObjectName objectName, 类<T> interfaceClass, boolean notificationBroadcaster)
通过将其方法通过给定的MBean服务器转发到指定的MBean,返回实现给定接口的代理。 从1.6开始,方法
JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)
和JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)
优于该方法。该方法相当于
Proxy.newProxyInstance
(interfaceClass.getClassLoader(), interfaces, handler)
。 这里handler
的结果是new MBeanServerInvocationHandler(connection, objectName)
,和interfaces
是具有如果一个元素的数组notificationBroadcaster
为假以及两个如果这是真的。interfaces
的第一个元素是interfaceClass
,第二个元素(如果存在)是NotificationEmitter.class
。- 参数类型
-
T
- 允许编译器知道,如果interfaceClass
参数为MyMBean.class
,则返回类型为MyMBean
。 - 参数
-
connection
- 要转发到的MBean服务器。 -
objectName
- 要转发到的connection
中的MBean的名称。 -
interfaceClass
- MBean导出的管理接口,也将由返回的代理实现。 -
notificationBroadcaster
-使返回的代理实现NotificationEmitter
经由其方法转发connection
。 在代理上调用NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
将导致调用MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
,同样对NotificationBroadcaster
和NotificationEmitter
的其他方法调用 。 - 结果
- 新的代理实例。
- 另请参见:
-
JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)
-
-