跳到主要内容
版本:7.0.3

通过代理访问MBeans

Hunyuan 7b 中英对照 Accessing MBeans through Proxies

Spring JMX允许你创建代理,这些代理会将调用重新路由到在本地或远程MBeanServer中注册的MBeans。这些代理为你提供了一个标准的Java接口,通过该接口你可以与你的MBeans进行交互。以下代码展示了如何为在本地MBeanServer中运行的MBean配置一个代理:

<bean id="proxy" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
<property name="objectName" value="bean:name=testBean"/>
<property name="proxyInterface" value="org.springframework.jmx.IJmxTestBean"/>
</bean>

在前面的例子中,你可以看到为在ObjectNamebean:name=testBean下注册的MBean创建了一个代理。该代理实现的接口集由proxyInterfaces属性控制,而将这些接口上的方法和属性映射到MBean上的操作和属性的规则,与InterfaceBasedMBeanInfoAssembler使用的规则是相同的。

MBeanProxyFactoryBean 可以为任何可以通过 MBeanServerConnection 访问的 MBean 创建代理。默认情况下,会使用本地的 MBeanServer,但你可以覆盖这一设置,提供一个指向远程 MBeanServerMBeanServerConnection,以便为指向远程 MBean 的代理进行配置:

<bean id="clientConnector"
class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
<property name="serviceUrl" value="service:jmx:rmi://remotehost:9875"/>
</bean>

<bean id="proxy" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
<property name="objectName" value="bean:name=testBean"/>
<property name="proxyInterface" value="org.springframework.jmx.IJmxTestBean"/>
<property name="server" ref="clientConnector"/>
</bean>

在前面的例子中,我们创建了一个MBeanServerConnection,它指向使用MBeanServerConnectionFactoryBean的远程机器。然后通过server属性将这个MBeanServerConnection传递给MBeanProxyFactoryBean。所创建的代理会通过这个MBeanServerConnection将所有的调用转发给MBeanServer