嗯,看tomcat源码的时候发现了这个东西。。还挺不错的。。。就稍微了解一下。。。
首先啥叫JMX:java management extension,字面翻译就是java管理扩展了。。。
不说那么多了,直接上代码吧:
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
public class Hello implements HelloMBean {
public String name;
public String hello(String name) {
// TODO Auto-generated method stub
this.name = name;
String out = "hello " + name;
System.out.println(out);
return out;
}
public static void main(String args[]) throws Exception{
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); //获取MBeanServer
ObjectName name = new ObjectName("fjs:type=hello"); //构造一个名字
Hello hello = new Hello(); //创建需要注册的对象
mbs.registerMBean(hello, name); //注册这个对象
Thread.sleep(Long.MAX_VALUE);
}
}
这段代码好像没啥意思吧,就是构造了一个hello类的对象,然后将其注册到了一个MBeanServer的对象上。。。
其实这里基本上也能猜出来这个干吗用的了。。。
通过MBeanServer这个对象,可以将刚刚注册的对象的方法暴露出去,可以供调用。。。
这里可以打开jconsole.exe,如图:
这里其实还可以通过远程的方式进行访问。。。
还挺方便的。。。
tomcat就是使用这种方式将一些对象暴露出来。。。可能可以方便对tomcat服务器的管理吧。。。