Spring JMX позволяет создавать прокси, которые перенаправляют вызовы к бинам MBean, зарегистрированным на локальном или удаленном MBeanServer
. Эти прокси предоставляют стандартный Java-интерфейс, через который можно взаимодействовать с бинами MBean. В следующем коде показано, как сконфигурировать прокси для бина MBean, выполняющегося на локальном MBeanServer
:
<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>
Из предыдущего примера понятно, что прокси создается для MBean, зарегистрированного под ObjectName
вида bean:name=testBean
. Набор интерфейсов, которые реализует прокси, управляется свойством proxyInterfaces
, а правила отображения методов и свойств этих интерфейсов на операции и атрибуты бина MBean аналогичны правилам, используемым InterfaceBasedMBeanInfoAssembler
.
MBeanProxyFactoryBean
может создавать прокси для любого бина MBean, доступного через MBeanServerConnection
. По умолчанию находится и используется локальный MBeanServer
, но можно переопределить это и обеспечить MBeanServerConnection
, которое будет указывать на удаленный MBeanServer
для обработки прокси, указывающих на удаленные бины 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
. Это MBeanServerConnection
затем передается в MBeanProxyFactoryBean
через свойство server
. Созданный прокси направляет все вызовы к MBeanServer
через это MBeanServerConnection
.