?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Spring JMX允許你創(chuàng)建代理,將調(diào)用重新路由到本地或者遠(yuǎn)程 MBeanServer
上注冊的MBean。
這些代理提供了一個標(biāo)準(zhǔn)Java接口,你可以通過它與MBean交互。以下代碼展示了如何為本地 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>
你可以看到已經(jīng)為以 ObjectName
:bean:name=testBean
注冊的MBean創(chuàng)建了一個代理,
該代理實現(xiàn)的所有接口都由 proxyInterfaces
和映射規(guī)則掌控。
也就是將這些接口上方法,屬性映射為MBean上操作與屬性的規(guī)則,它們與 InterfaceBasedMBeanInfoAssembler
使用的是同一套規(guī)則。
MBeanProxyFactoryBean
能創(chuàng)建一個任何MBean的代理,可以通過 MBeanServerConnection
來訪問。
默認(rèn)將定位,使用本地的 MBeanServer
。但是,為了適應(yīng)指向遠(yuǎn)程MBean的代理,你可以重載這種行為,提供一個指向遠(yuǎn)程 MBeanServer
的 MBeanServerConnection
。
<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>
你可以看到我們用 MBeanServerConnectionFactoryBean
構(gòu)建了一個 MBeanServerConnection
指向一個遠(yuǎn)程主機(jī)。
這個 MBeanServerConnection
之后通過 server
屬性傳給了 MBeanProxyFactoryBean
。
創(chuàng)建的這個代理將通過 MBeanServerConnection
把所有調(diào)用轉(zhuǎn)發(fā)給 MBeanServer
。