对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

通过代理访问 MBean

Spring JMX 允许您创建代理,将调用重新路由到注册在本地或远程MBeanServer. 这些代理为您提供了一个标准的 Java 接口通过它,您可以与 MBean 进行交互。以下代码显示了如何为在本地运行的 MBean 配置proxyMBeanServer:spring-doc.cadn.net.cn

<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. 代理实现的接口集由proxyInterfaces属性,并且将方法和属性映射到 MBean 上的作和属性的规则是相同的规则InterfaceBasedMBeanInfoAssembler.spring-doc.cadn.net.cn

MBeanProxyFactoryBean可以创建任何可通过MBeanServerConnection. 默认情况下,本地MBeanServer被定位并使用,但您可以覆盖它并提供MBeanServerConnection指向遥控器MBeanServer以迎合指向远程 MBean 的代理:spring-doc.cadn.net.cn

<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财产。 代理是created 将所有调用转发给MBeanServer通过这个MBeanServerConnection.spring-doc.cadn.net.cn