概念:
JMX(Java Management Extensions,即Java管理扩展),可通过各种通讯协议,访问被注册Java类的方法,以达到管理Java程序的目的。
例子:
注册类
public class Hello implements HelloMBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void printHello() {
System.out.println("Hello World, " + name);
}
public void printHello(String whoName) {
System.out.println("Hello , " + whoName);
}
}
接口类
public interface HelloMBean {
public String getName();
public void setName(String name);
public void printHello();
public void printHello(String whoName);
}
服务类
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import com.sun.jdmk.comm.HtmlAdaptorServer;
public class MBeanRegister {
public static void main(String[] args) throws Exception {
//启动MBean注册容器
MBeanServer mBeanContainer = MBeanServerFactory.createMBeanServer();
//注册自己的MBean
ObjectName mBeanName = new ObjectName("MBean:name=Hello");
HelloMBean helloMBean = new Hello();
mBeanContainer.registerMBean(helloMBean, mBeanName);
//注册Mbean服务器
ObjectName serverName = new ObjectName("Server:name=HtmlAdaptorServer");
HtmlAdaptorServer htmlAdaptorServer = new HtmlAdaptorServer();
htmlAdaptorServer.setPort(8082);
mBeanContainer.registerMBean(htmlAdaptorServer, serverName);
//启动MBean服务器
htmlAdaptorServer.start();
}
}
解释:
1,接口类名必须为 "注册类名"+"MBean"。
2,ObjectName就是MBean的注册名字,格式为"Domain:name=ClassName",MBean服务器会根据Domain分类。
Spring+JMX
http://lionbule.iteye.com/blog/771727