<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 暴露监控设备 --> <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/> <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <property name="beans"> <map> <entry key="bean:name=mbeanTestLocal" value-ref="mbeanTest" /> </map> </property> <property name="server" ref="mbeanServer"/> </bean> <!-- mbean --> <bean id="mbeanTest" class="mbean.MBeanTest" /> <!-- 使用JNDI-RMI的方式进行远程连接通讯,并且配置占用端口号 --> <bean id="rmiRegistry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> <property name="port" value="38080" /> </bean> <bean class="org.springframework.jmx.support.ConnectorServerFactoryBean" depends-on="rmiRegistry" lazy-init="false"> <property name="objectName" value="connector:name=rmi" /> <!-- 远程连接的地址 --> <property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:38080/myconnector1" /> </bean></beans>
package mbean; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Created by 13100256 on 2015/7/2. */ public class Test { public static void main(String args[]){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "conf/spring/spring-mbean-1.xml"); try { Thread.currentThread().sleep(1000*10000); } catch (InterruptedException e) { e.printStackTrace(); } } }
package mbean; import org.springframework.jmx.export.annotation.ManagedAttribute; import org.springframework.jmx.export.annotation.ManagedOperation; import org.springframework.jmx.export.annotation.ManagedResource; import javax.management.MXBean; /** * Created by 13100256 on 2015/7/1. */ //@ManagedResource(objectName = "annojmx:myjao=AnnotationObject", description="MyJavaAnnotationObject") public class MBeanTest { //@ManagedAttribute public long getCount(){ return 1; } //@ManagedAttribute public long getGauge(){ return 2; } //@ManagedOperation public String shut(){ return "test"; } }
Spring JMX demo 例子
最新推荐文章于 2022-02-23 15:43:22 发布