JMX入门

JMX是拿来做管理运行时对象用的,比如说系统中有很多配置文件,怎么才能在运行时改变这些配置文件的值呢?这就需要jmx,当然还有别的办法。
下面写个简单的helloworld,帮助理解
jmx最小的管理单元是MBean,下面写一个接口
public interface HelloWorldMBean {
	public String getName();

	public void setName(String name);

	public void print();
}

默认情况下接口名为类名加上MBean。如HelloWorld类的接口就是HelloWorldMBean
对应的HelloWorld:
public class HelloWorld implements HelloWorldMBean {

	private String name = "";

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void print() {
		System.out.println("Hello, " + name + "!!");
	}
}

这样dMBean就可以了。然后就是要把他注册到MBeanServer上去。

public class HelloAgent {
	private MBeanServer mbs = null;

	public HelloAgent() {
		mbs = MBeanServerFactory.createMBeanServer();
		HtmlAdaptorServer adapter = new HtmlAdaptorServer();
		HelloWorld hw = new HelloWorld();
		ObjectName adapterName = null;
		ObjectName helloWorldName = null;
		try {
			helloWorldName = new ObjectName("HelloAgent:name=helloWorld1");
			mbs.registerMBean(hw, helloWorldName);
			adapterName = new ObjectName("HelloAgent:name=htmladapter,port=9092");
			adapter.setPort(9999);
			mbs.registerMBean(adapter, adapterName);
			adapter.start();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public static void main(String args[]) {
		System.out.println("HelloAgent is running");
		new HelloAgent();
	}
}


运行这个类,然后在浏览器中打开http://localhost:9999/
出现了很多神奇的东西。哈哈,自己去点点就能理解这个jmx是什么意思了。
附件中有个包jdmkrt,是运行上面程序必须的,不然你就不能在浏览器中看到这个效果了哈哈

你可能感兴趣的:(浏览器,配置管理)