JMX的用途和基本结构在这里就不详细介绍了,大家可以上网去搜一些资料看看。 这里主要说的是DynamicMBean,顾名思义,它是一个动态的管理Bean, 和标准静态Bean刚好相反, 它可以动态的配置一个类里面,哪些方法或者属性可以被注册到jmx去管理。 好了,废话少说了,直接进入正题吧。
准备工作:
导入相关jar包,本实例涉及到的jar包有:
1. apache的:commons-beanutils-1.8.0.jar, commons-lang-2.4.jar, commons-logging-1.1.1.jar
2. sun的:jmxtools-1.2.1.jar、 下载地址:http://java.sun.com/products/JavaManagement/download.html
代码:
说明: 代码公分三个类,分别是Person,PersonDynamic,PersonDynamicAgent。 Person是一个普通的javaBean, 在这里作为实际被管理的角色。 PersonDynamic是一个动态MBean, 它代理Person类向jmx暴露需要被管理的属性和方法。PersonDynamicAgent是一个main类,它主要负责将动态MBean注册到jmx服务里面,并且启动一个web服务器,让用户可以通过网页界面去管理MBean。
运行PersonDynamicAgent类,打开网页: http://localhost:9999 查看效果。