1.JMX含义
最近做一个日常,写一个JMX。个人觉得JMX好神奇,写一个配置文件+一个带JmxClass注解的类+若干个带JmxMethod注解的方法,JMX就会自动提供一个WEB页面供我进行配置与管理,JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。
2.使用
2.1 配置文件jmx-mbean.xml
具体内容如下
<?
xml
version
=
"1.0"
encoding
=
"GBK"
?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd" >
< beans default-autowire = "byName" >
< bean id = "exporter" class = "org.springframework.jmx.export.MBeanExporter" lazy-init = "false" >
< property name = "beans" >
< map >
< entry key = "bean:name=htmlAdaptor" value-ref = "htmlAdaptor" />
</ map >
</ property >
</ bean >
< bean id = "htmlAdaptor" class = "com.sun.jdmk.comm.HtmlAdaptorServer" init-method = "start" >
< property name = "port" value = "5168" />
</ bean >
<!-- pamirs -cache 提供 -->
< bean class = "com.taobao.pamirs.cache.extend.jmx.mbean.ConfigurableMBeanInfoAssembler" />
</ beans >
2.2写类与方法
2.3 页面
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd" >
< beans default-autowire = "byName" >
< bean id = "exporter" class = "org.springframework.jmx.export.MBeanExporter" lazy-init = "false" >
< property name = "beans" >
< map >
< entry key = "bean:name=htmlAdaptor" value-ref = "htmlAdaptor" />
</ map >
</ property >
</ bean >
< bean id = "htmlAdaptor" class = "com.sun.jdmk.comm.HtmlAdaptorServer" init-method = "start" >
< property name = "port" value = "5168" />
</ bean >
<!-- pamirs -cache 提供 -->
< bean class = "com.taobao.pamirs.cache.extend.jmx.mbean.ConfigurableMBeanInfoAssembler" />
</ beans >
2.2写类与方法
@JmxClass
@Component ( "jrpHackHelper" )
public class JrpHackHelper {
@JmxMethod
public ResultDTO<Boolean> addProAttrEnum(Long productId, String name,
String key, Long businessType, Long flag) {
}
@Component ( "jrpHackHelper" )
public class JrpHackHelper {
@JmxMethod
public ResultDTO<Boolean> addProAttrEnum(Long productId, String name,
String key, Long businessType, Long flag) {
}
@JmxMethod
public ResultDTO<Boolean> resendNotify(Long commandId)
{
}
public ResultDTO<Boolean> resendNotify(Long commandId)
{
2.3 页面